我目前遇到一个问题,即在 Internet Explorer 中测试时窗口不出现。我正在使用 Selenium-RC 2.6.0,用 C# 编写我的测试并使用 NUnit 启动它们。
我的所有测试都在 Firefox 和 Chrome 中运行,但在 Internet Explorer 9 中,当 selenium 在链接上执行单击时(该链接使用 Javascript 启动一个新窗口)没有窗口出现。该窗口在 Firefox 和 Chrome 中显示得很好。
打开弹出窗口拦截器已关闭,启用保护模式已关闭,接受所有 Cookie 已打开。 Windows 防火墙已关闭。谁能想到其他可能导致它的原因?或者如果这是一个已知的错误?我在 SO 和 Google 上进行了广泛搜索,但尚未找到任何有用的结果。
编辑:为我尝试使用的元素添加了代码
<a id="supervisor" class="topmenu" onclick="switchSupervisor();" href="javascript:void(0);">
<span style="font-size: 13px;">
<strong>.</strong>
Supervisor
</span>
</a>
感谢您提供有用的答案,具有讽刺意味的是,尽管已发布的解决方案均无效,但我的问题已通过 Microsoft 更新得到解决,该更新解决了 IE 中明显存在的错误或奇怪的功能,但已在最新更新中得到修复。我现在可以通过单击或触发事件轻松启动它。
最佳答案
带有 Selenium 的 IE 有一个烦人的错误,如果链接元素有任何嵌套元素但没有文本,元素将无法被正确点击。
例如:
<a id="clickme"><img src="something" /></a>
在 IE 中,以下内容不起作用:
driver.FindElement(By.Id("clickme")).Click();
解决方法是单击链接元素下 DOM 树中最低的元素:
driver.FindElement(By.Id("clickme")).FindElement(By.TagName("img")).Click();
//or
driver.FindElement(By.CssSelector("#clickme img")).Click();
关于c# - Internet Explorer 不会在测试期间启动新窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7499249/