2016-08-30 72 views
0

工作,我与的img标签这个奇怪的问题,我的HTML代码示例如下硒IE司机不img元素

<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(警告:服务器未提供任何信息栈跟踪)

这里有什么错?

硒webdriver的版本:2.53.1.0 IE浏览器:IE11 操作系统:Windows 7 JDK 1.7

+0

您是否尝试过等待条件?也许该页面没有加载。如果这不起作用,你应该在IE中手动尝试这些选择器。 – lauda

+0

是的,尝试使用静态和动态等待来确保页面完全加载并使用其他选择器(xpath等)。我不知道如何在IE中验证选择器,但在Chrome中,xpath和id选择器都定位目标元素。 Chrome正在像魅力一样工作,但IE导致了这个问题。 –

+0

@BhuvaneshMani尝试在IE中的选择器右键单击元素并选择检查。类似于铬。否则打F12。 – Grasshopper

回答

0

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

所以我认为驱动程序对象没有连接到浏览器,如果IE引发像thsi一些警告。我解决了它在Internet选项禁用2个选项>高级选项卡>安全课>

  • 允许从CD的活动内容,以我的电脑上运行 - >设置为Yes(打勾)
  • 允许活动内容运行我的电脑上的文件 - >设置为是(勾选)

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

注意:同样我想缩小注册表设置在@Grasshopper建议的角色中的位置。所以我在同事的机器上做了同样的实验(没有IE11的注册表设置),这也为他解决了。所以注册表设置在这里不起作用。