【发布时间】:2017-07-15 08:10:15
【问题描述】:
我在 IE11 上执行 selenium 自动化。现在对于一个元素,比如说 ele; ele.sendKeys(characters) 不能直接工作。所以我试图通过 JavaScript 执行器更改 <input> 标记的“值”属性。更改后,我将通过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") 的输出设为空白/空时
【问题讨论】:
-
.sendKeys()到底有什么问题?代码会抛出一些异常吗?因为操作 DOM 只是一种解决方法。 -
它没有抛出任何错误...selenium 代码正在运行..但由于某种原因,IE 没有像手动那样按预期提示。所以脚本一直在等待下一个元素的出现。问题是如果这个 SendKeys() 有效,那么只有 将被启用,我可以点击它。但由于 sendKeys 没有设置任何值,因此上传按钮保持禁用状态。
-
手动单击 时会打开 Windows 默认文件选择以选择文件。在 Firefox 中,我单击该浏览器选项,然后通过 Robot 类选择文件。但是在 IE11 上,虽然点击正在发生,但没有弹出 windows 默认文件选择。所以我试图为这两个 标签做 sendKeys(filepath) 。但这也不起作用,然后我直接尝试通过 javaScriptExecutor 在 DOM 元素上注入文件路径。如果你能告诉我如何解决 Windows 默认文件选择弹出窗口,这也解决了我的目的。
-
当我们在 IE 上手动单击该浏览器选项时,会弹出 windows 默认文件选择,但在自动单击该元素后,它无法打开。单击UI后的方法失败没有响应...它不会弹出该文件选择选项。我还尝试点击 Actions 类...谢谢 Adv.
-
你能发一个链接到页面吗?
标签: javascript selenium selenium-webdriver internet-explorer-11