c# - Internet Explorer 不会在测试期间启动新窗口

标签 c# testing selenium selenium-rc

我目前遇到一个问题,即在 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/

相关文章:

c# - 更改 ServiceStack.Text.CsvSerializer 中的 CSV 分隔符

c# - 无法注册启动脚本

c# - 使用 C# 从 MongoDB 中的文档中删除元素

testing - 使用 Selenium 集成开发环境

java - 在 Appium 中滑动而不输入 x 和 y 坐标的替代方法?

java - org.openqa.selenium.SessionNotCreatedException : Unable to create new remote session in Mac

c# - c#中的序列乘法

javascript - 我可以设置一个 QUnit 钩子(Hook)在套件中的所有测试之前运行吗?

ruby - 具有多个方法调用的 RSpec `should_receive` 行为

c# - Selenium WebDriver - 找不到 Chrome 二进制文件