2017-07-31 86 views
0

我有一個輸入類型文本被禁用且沒有值屬性。Selenium C# - 如何獲得沒有值屬性的禁用文本字段的值

<div class="col-md-4"> 
    <!-- ko if: HierarchyId() != SystemHierarchy.Store --> 
    <input type="text" class="form-control" data-bind="disable: HierarchyId() == SystemHierarchy.Enterprise || IsAccessible() === false, value: ShortName" disabled=""> 
    <!-- /ko --> 
    <!-- ko if: HierarchyId() == SystemHierarchy.Store --><!-- /ko --> 
</div> 

在UI上,此輸入字段具有默認的禁用值,例如'429'。我需要這個值429,但無法獲取,因爲它沒有值屬性。

+0

你能提供您當前的邏輯一些代碼例子嗎? 另外,您必須在綁定事件後獲取元素。否則,其值和其他綁定屬性將不會被提取。 – Rostech

+0

我已經嘗試過element.getAttribute(「innerHTML」),但它返回空白 –

+0

請在其中填入'429'的完整標記。理想情況下,周圍的HTML標記將在某處包含此值。 –

回答

0

我想你的HTML使用Knockout JS來綁定值。您可以使用元素的Xpath來查找元素文本。

driver.findElement(By.xpath("//input[contains(@class, 'form-control') and contains(@data-bind, 'disable: HierarchyId')]")]").Text; 

注意:我嘗試使用元素的最近xpath。您可能需要嘗試一下,並根據需要更改Xpath。

而且refer- http://geekswithblogs.net/Aligned/archive/2014/07/09/use-selenium-to-find-elements-by-knockoutrsquos-data-bind.aspx Find Elements by data-bind [Findsby] https://sqa.stackexchange.com/questions/10342/how-to-find-element-using-contains-in-xpath