我有一个输入类型文本被禁用且没有值属性。
<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>
在用户界面上,此输入字段具有默认的禁用值,例如&#39; 429&#39;。我需要这个值429但由于其中没有值属性而无法获取。
答案 0 :(得分:0)
我认为您的HTML使用Knockout JS来绑定值。您可以使用元素的Xpath找到元素文本。
driver.findElement(By.xpath("//input[contains(@class, 'form-control') and contains(@data-bind, 'disable: HierarchyId')]")]").Text;
注意:我尝试使用元素的最近xpath。您可能需要尝试这样做,并根据需要更改Xpath。
另请参阅 - 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