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

时间:2011-09-21 11:50:37

标签: 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防火墙已关闭。任何人都可以想到可能导致它的任何其他事情吗?或者,如果这是一个已知的错误?我在搜索引擎优化和谷歌上进行了大量搜索,但尚未发现任何有用的结果。

编辑:为我尝试使用的元素添加了代码

<a id="supervisor" class="topmenu" onclick="switchSupervisor();"    href="javascript:void(0);">
<span style="font-size: 13px;">
<strong>.</strong>
Supervisor
</span>
</a>

感谢您提供有用的答案,具有讽刺意味的是,虽然没有任何已发布的解决方案可行,但我的问题是通过微软更新解决的,该更新解决了IE中最近更新中修复的错误或奇怪功能。我现在可以通过点击或火灾事件轻松启动它。

2 个答案:

答案 0 :(得分:3)

使用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();

答案 1 :(得分:2)

尝试使用

Selenium.FireEvent(@"css=a#supervisor", "click")