我目前遇到的问题是在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中最近更新中修复的错误或奇怪功能。我现在可以通过点击或火灾事件轻松启动它。
答案 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")