【发布时间】:2017-12-11 11:34:30
【问题描述】:
我有一个很老的网站要维护,支持IE8及以上。
现在我计划使用 Selenium WebDriver(版本 3.7.1)在站点上进行一些测试自动化。除了一些使用 document.getElementById() 的页面外,几乎所有东西都运行良好。关键是,这些页面利用了 IE11 的“特性”,即当没有元素与指定 ID 匹配时,它会返回具有该 ID 作为名称的元素(如 this thread 所示)。
当浏览器(IE11)由 selenium 启动时,它无法调用该代码(返回 NULL,导致错误)。
进一步调查,我发现手动启动时,调用 navigator.appName 返回“Microsoft Internet Explorer”,而在另一种情况下返回“Netscape”。
这种差异是什么意思,这是我问题的根本原因。最重要的是,如何解决?
我正在使用此源代码启动页面:
DesiredCapabilities ieCapabilities = DesiredCapabilities.internetExplorer();
WebDriver driver = new InternetExplorerDriver(
new InternetExplorerOptions(ieCapabilities));
wait = new WebDriverWait(driver, 30);
driver.get(url);
【问题讨论】:
-
能否检查一下是否与IE文档兼容模式有关。我怀疑它们在可能导致问题的两种情况下可能不同
-
您使用的是哪个
Selenium Client?Java/JavaScript?
标签: javascript selenium internet-explorer-11