我正在 IE11 上执行 selenium 自动化。现在对于一个元素,说 ele;ele.sendKeys(characters)
不直接工作。所以我试图改变它的“值”属性<input>
通过 JavaScript Executor 进行标记。一旦我改变了这一点,我就会通过以下方式验证相同的内容ele.getAttribute('value')
。但那次我发现该值仍然像之前一样为空。我的测试也同样失败了。
HTML代码
<form id="upload" method="post" action="/upload" enctype="multipart/form-data" style="width: 90%">
<label for="uploadinputFile">
<br style="clear:all">
<input id="browse_file" class="bttn-primary" type="button" value="Browse">
<input id="file_input_browser" type="file" name="upload_File">
<div id="button">
<input id="submit" class="bttn-primary" type="submit" disabled="" value="Upload">
</div>
</form>
硒代码
WebElement brw=driver.findElement(By.id("file_input_browser"));
((JavascriptExecutor) driver).executeScript("document.getElementById('file_input_browser').setAttribute('value', 'new value for element')");
System.out.println("value:"+brw.getAttribute("value"));
我还使用了以下 JavaScriptExecutor:((JavascriptExecutor) driver).executeScript("arguments[0].setAttribute('value', '" +c+"')",brw);
//c是一个字符串
但每次我得到的输出brw.getAttribute("value")
作为空白/空
你必须实例化你的WebElement
在操作 DOM 之后,而不是之前。否则存储的WebElement
不会包含您正在查找的信息并将返回null
.
driver.executeScript("document.getElementById('ID').setAttribute('value','NEW_VALUE');");
System.out.print("value: "+driver.findElement(By.id("ID")).getAttribute("value"));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)