在Firebug和其他DevTools中,您可以获取与HTML元素对应的DOM属性和值。
如何使用selenium-java代码提取这些值?
我曾尝试getAttribute()
,但它似乎只适用于HTML属性,而不适用于“属性”或“拼写检查”等DOM属性。
我采用这种方法的原因是与<input>
文本字段(下面的代码段)相关联的值是运行时生成的,并且使用Knockout将数据绑定到它。因此,用getText()
,getAttribute("value")
,getAttribute("text")
,getAttribute("innerHTML")
,getAttribute("innertext")
等标准方法捕获它们是不可能的。
HTML元素的HTML代码段:
<input class="form-control" type="text" style="cursor: text" readonly="readonly" data-bind="textInput: url">
答案 0 :(得分:1)
根据Selenium documentation,只有getAttribute()
函数,描述如下:
获取元素的给定属性的值。将返回当前值,即使在页面加载后已经修改了该值。更确切地说,此方法将返回给定属性的值,除非该属性不存在,在这种情况下返回具有相同名称的属性的值(例如,对于&#34; value&#34;属性textarea元素)。如果未设置任何值,则返回null。 ...
根据这一点,如果没有名为getAttribute("value")
的HTML属性,value
应该返回DOM属性值。
如果情况并非如此,则可能是时间问题。即在设置之前,Selenium会读取该值。
答案 1 :(得分:1)
我知道这是一个古老的问题,但它可能会让其他人伸出援手
在控制台中使用此功能
$$("input.form-control").value
如果返回所需要的,则必须使用Javascript
执行WebDriver
,即
driver.ExecuteScript("var data = arguments[0].value; return data;", (Element as RemoteWebElement)