2017-07-31 106 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

相关问题