【问题标题】:Internet Explorer will not launch new windows during testInternet Explorer 在测试期间不会启动新窗口
【发布时间】:2011-09-21 11:50:37
【问题描述】:

我目前遇到的问题是在 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 中明显的错误或奇怪功能,在最新更新中已修复。我现在可以通过单击或触发事件轻松启动它。

【问题讨论】:

  • 更新:一直在尝试寻找一种解决方法,显然似乎是直接调用 javascript,而不是随意点击。尝试 Selenium.GetEval("this.browserbot.getUserWindow().javaScript()");但没有骰子,显然这是另一件事,只适用于 FF 而不是 IE。仍在寻找建议!
  • 您尝试过 Deitro 的解决方案吗?
  • 目前正在做另一个项目,但我今天会争取时间来测试它

标签: c# testing selenium selenium-rc


【解决方案1】:

带有 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();

【讨论】:

  • 我正在使用 Selenium RC,在我看来这就是 Selenium Webdriver 代码。你有机会知道 RC 的代码吗?我突然想到直接运行 javascript 也可以,现在正在寻找一种方法。
  • Selenium RC 应该非常相似。重要的部分是选择器,我认为类似于 selenium.click("css=#clickme img")
  • 感谢更新,不幸的是,由于没有嵌套元素,这并不能解决我的问题,我已经发布了上面标签的代码。
【解决方案2】:

尝试使用

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-28
    • 1970-01-01
    • 1970-01-01
    • 2011-09-21
    • 1970-01-01
    • 2014-12-15
    • 2019-08-17
    相关资源
    最近更新 更多