2011-09-21 69 views
1

我目前遇到了在Internet Explorer中测试期间未启动窗口的问题。我使用Selenium-RC 2.6.0,在C#中编写我的测试并使用NUnit启动它们。Internet Explorer在测试期间不会启动新窗口

我所有的测试都在Firefox和Chrome上运行,但在Internet Explorer 9中,当硒执行一个链接点击(链接使用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> 

谢谢你的帮助的答案,讽刺的是,虽然没有发布的解决方案的工作我的问题是通过微软更新解决这解决了在最新更新中修复过的IE中显然是bug或奇怪的功能。现在我可以通过点击或火灾事件轻松启动它。

+0

更新:一直在试图找到一种解决方法,显而易见的是直接调用JavaScript而不是点击左右。试图Selenium.GetEval(“this.browserbot.getUserWindow()。javaScript()”);但没有骰子,显然这是另一件只适用于FF而不适用于IE的东西。仍在寻找建议! – FooBar

+0

你试过Deitro的解决方案吗? –

+0

在另一个项目当中,但我会尽量抽出时间来测试它 – FooBar

回答

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(); 
+0

我使用的是Selenium RC,它在我看来就是Selenium Webdriver代码。有没有机会知道RC的代码?它发生在我身上,直接运行JavaScript也会工作,现在正在寻找一种方法。 – FooBar

+0

硒的RC应该非常相似。重要的是选择器,我觉得像selenium.click(“css =#clickme img”) – prestomanifesto

+0

感谢您的更新,这不能解决我的问题,因为没有嵌套的元素,我已经发布代码上面的标签。 – FooBar

2

尝试使用

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

相关问题