Selenium IE驱动程序无法使用img元素

时间:2016-08-30 18:22:25

标签: java html selenium selenium-webdriver

我的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

1 个答案:

答案 0 :(得分:0)

经过数小时的努力,我找到了原因。当我运行上面的代码时,我注意到IE底部显示的警告文本为“Internet Explorer限制此网页运行脚本或ActiveX控件。”以及“允许阻止内容”按钮。由于我有webdriverwait等待我的img元素,我点击了这个按钮,我看到该驱动程序开始打印我正在寻找的输出(与chrome相同)。

所以我认为如果IE抛出一​​些像thsi这样的警告,驱动程序对象不会附加到浏览器。我通过在Internet选项中禁用2个选项&gt;解决了这个问题。高级选项卡&gt;安全部分&gt;

  • 允许CD中的活动内容在“我的电脑”上运行 - &gt;设置为是(勾选)
  • 允许活动内容在“我的电脑”上的文件中运行 - &gt;设置为是(勾选)

在此之后,我的驱动程序开始识别对象并像chrome一样工作。

注意:我还希望缩小注册表设置是否像@Grasshopper所建议的那样发挥作用。所以我在同事的机器上做了同样的实验(没有IE11的注册表设置),这也为他解决了。因此,注册表设置不起作用。