我的img标签存在这个奇怪的问题,我的示例HTML代码在
下面<html>
<input type='text' id='1111' MaxLength='10'/>
<img id='imageId001' title='hello' name='Done'/>
</html>
System.out.println(driver.findElement(By.id("imageId001")).getAttribute("title"));
使用Chrome驱动程序,输出为hello。
但是使用IE 64/32 webdrivers, 线程“main”中的异常org.openqa.selenium.NoSuchElementException:无法找到id为== imageId001的元素(警告:服务器未提供任何堆栈跟踪信息)
这里错了???
Selenium WebDriver版本:2.53.1.0 Internet Explorer:IE11 操作系统:Windows 7 JDK 1.7
答案 0 :(得分:0)
经过数小时的努力,我找到了原因。当我运行上面的代码时,我注意到IE底部显示的警告文本为“Internet Explorer限制此网页运行脚本或ActiveX控件。”以及“允许阻止内容”按钮。由于我有webdriverwait等待我的img元素,我点击了这个按钮,我看到该驱动程序开始打印我正在寻找的输出(与chrome相同)。
所以我认为如果IE抛出一些像thsi这样的警告,驱动程序对象不会附加到浏览器。我通过在Internet选项中禁用2个选项&gt;解决了这个问题。高级选项卡&gt;安全部分&gt;
在此之后,我的驱动程序开始识别对象并像chrome一样工作。
注意:我还希望缩小注册表设置是否像@Grasshopper所建议的那样发挥作用。所以我在同事的机器上做了同样的实验(没有IE11的注册表设置),这也为他解决了。因此,注册表设置不起作用。