Internet Explorer 8 64 位和 Selenium 不工作

Posted

技术标签:

【中文标题】Internet Explorer 8 64 位和 Selenium 不工作【英文标题】:Internet Explorer 8 64bit and Selenium Not working 【发布时间】:2010-12-03 19:24:45 【问题描述】:

我正在尝试运行硒测试。然而,每次我尝试运行应该运行 IE 的测试时,我都会在 htmlutils.js 的第 863 行收到一个错误,它说我应该禁用我的弹出窗口阻止程序。问题是我去了IE工具->打开弹出块。

所以它被禁用了,我得到了这个错误。

还有什么我需要禁用的。由于我使用的是 Windows 7 Pro 64 位版本,我实际上什至不知道它运行的是哪个版本的 Internet Explorer。因此,当我使用 IE 时,我使用的是 64 位版本,但如果网站或类似网站不支持 64 位,我会理解为 32 位。

所以我不确定我需要做什么才能让它工作。

这是它所在的行

function openSeparateApplicationWindow(url, suppressMozillaWarning) 
    // resize the Selenium window itself
    window.resizeTo(1200, 500);
    window.moveTo(window.screenX, 0);

    var appWindow = window.open(url + '?start=true', 'selenium_main_app_window');
    if (appWindow == null) 
        var errorMessage = "Couldn't open app window; is the pop-up blocker enabled?"
        LOG.error(errorMessage);
        throw new Error("Couldn't open app window; is the pop-up blocker enabled?");
    

这个 log.error 消息存储在哪里?也许我也可以发布。

【问题讨论】:

在 Selenium 支持论坛上提出这个问题可能会得到更好的结果。 您可以使用 -log 标志启动 selenium 服务器,这将为您提供更详细的问题输出:seleniumhq.org/docs/05_selenium_rc.html#selenium-server-logging 【参考方案1】:

我在 Windows 7 64bit 上遇到了这个问题。

我的解决方案是:

    禁用弹出块。 - 选择“工具/弹窗拦截器/关闭弹窗拦截器”

    禁用 IE 保护模式。 - 取消勾选“工具/Internet 选项/安全/启用保护模式”

最好只禁用已知受信任主机/地址的保护模式。我将把它作为练习留给读者。

【讨论】:

这对我来说非常有效,似乎比以管理员身份运行或转向使用代理更好的解决方案。 哈,刚刚又找到了这个答案。仍然有效,而且似乎仍然是最好的解决方案。 这对我不起作用。我将本地主机添加到受信任的站点并禁用弹出窗口阻止和 IE 保护模式。由于无法打开应用程序窗口,它仍然失败?我还需要做什么?它对管理员来说工作正常,但我们不能像那样运行它,因为我们是通过构建服务器中的 selunit 运行它。 这是为我做的,Windows7,IE8 64 位。弹出窗口阻止程序已经关闭,“启用保护模式”复选框很重要。 根本不为我工作。 Win7,IE8,32位。我在公司网络中。【参考方案2】:

我遇到了同样的问题,并找到了另一个适合我的解决方案。只需在 browserString 中使用 *iexploreproxy 设置即可。

我用过:

selenium = new DefaultSelenium("localhost", 4444, "*iexploreproxy C:/Program Files/Internet Explorer/iexplorer.exe", "http://www.bbc.co.uk/");

我希望这也适用于其他人:)

【讨论】:

【参考方案3】:

我在 Vista 和 IE8 上遇到了类似的问题 我会收到同样的错误信息

Couldn't open app window; is the pop-up blocker enabled?"

以管理员身份运行我的遥控器不是我的选择,从安全角度来看也是一个糟糕的主意。 所以最后我设法通过将浏览器从“*ietha”更改为“*iexploreproxy”来解决这个问题 grid_configuration.yml

hub:
  port: 4444
    ...
    - name: "Internet Explorer 8 on Vista"
      browser: "*iexploreproxy"
    ...

或者,您可以从代码中更改浏览器字符串:

ISelenium selenium = new DefaultSelenium("localhost", 4444, "*iexploreproxy", "http://www.google.com/");

像魅力一样工作。 剩下的唯一问题是这是否会以某种方式影响测试用例的结果。到目前为止没有,但如果发生这种情况,我会更新这个答案。

【讨论】:

这对我不起作用。使用 iexploreproxy,它会在启动后尝试打开以下 URL:http://localhost:8003/selenium-server/core/RemoteRunner.html?sessionId=f44546a9dc584b69a1d20d539a8a037c&multiWindow=true&baseUrl=http%3A%2F%2Flocalhost%3A8003%2Findex-test.php%2F&debugMode=false 这是无效的,因为没有定义“selenium-server”url...任何想法?【参考方案4】:

您可以在禁用 Internet 的安全模式时开始测试。不知道它的正确名称,但在荷兰语中它是 beveiligde modus。 我尝试修改安全设置以复制此安全模式,但找不到正确的设置。因此,它必须阻止更多,然后您才能手动设置。

【讨论】:

【参考方案5】:

如果您碰巧从 javascriptMVC 执行此操作,则需要在 \jmvc\plugins\test\drivers\selenium.js 中更改参考:

1) 将 iexplore 更改为 iexploreproxy 应该会得到更好的结果:

    msie : (/iexploreproxy/i).test(browserStartCommand),

2) 此时,您会发现仍然会弹出错误,但是已经启动了一个单独的 IE 实例。 让 IE 窗口保持打开状态并重新启动测试,但不重新启动 Selenium。

3) 接下来,窗口应该显示在正确的位置,但 IE 会发出烦人的阻止活动内容警告。允许内容运行并重新启动测试,但不允许 Selenium 本身。

这非常笨拙,但至少可以让您通过那部分。如果我找到更有条理的方法来做这些事情,我会根据需要进行更新。

【讨论】:

【参考方案6】:

我在 Windows 7 64bit IE8 上遇到了同样的问题。第一步是禁用 IE 弹出窗口阻止程序。然后,我在状态栏中收到一条消息,说“此页面上的弹出窗口被阻止。按'Ctrl'键允许弹出窗口”。

事实证明,Google 工具栏提供了此功能。禁用它解决了这个问题。视图 > 工具栏 > 谷歌切换。

约翰。

【讨论】:

【参考方案7】:

我遇到了同样的问题。我以管理员身份运行 Selenium RC 服务器,一切正常。

【讨论】:

以管理员身份运行 Selenium RC 也为我解决了这个问题。 如何以管理员身份运行它?我正在使用java -jar selenium-server.jar。我是管理员,所以我猜 selenium 也在我的帐户下运行。还是我应该以其他方式运行它?【参考方案8】:

我也在 Windows 7 64 位机器上遇到了这个问题,尝试在其上运行 Selenium 以测试用 C# 编写的 ASP .Net MVC 应用程序。

我仍在尝试为自己找出答案,但我想我会在这里发帖告诉你我在让 something 工作方面取得的一些进展,尽管是在 Firefox 中IE。

这是我更改的行:

selenium = new DefaultSelenium("localhost", 4444, "*chrome C:/Program Files (x86)/Mozilla Firefox/firefox.exe", "http://www.bbc.co.uk/");

理想情况下,我希望它能够在 Internet Explorer 8 中运行,但如果目前我可以开始进行测试,然后再转而使用 IE,那就太好了。

希望这对您的所有问题有所帮助。

【讨论】:

嗯,我在 Firefox 或任何其他受支持的浏览器(opera、safari、chrome)中运行 selenium 没有问题。只是 IE 8 无法运行。 我发现我还无法尝试的一个建议。是以管理员模式运行服务器。尝试一下可能会起作用

以上是关于Internet Explorer 8 64 位和 Selenium 不工作的主要内容,如果未能解决你的问题,请参考以下文章

为啥即使在模拟 Internet Explorer 8 文档模式时,Internet Explorer 11 也不支持条件注释?

使用 Internet Explorer 10 及更低版本保存 Base64 编码的 PDF

Internet Explorer 8 + 放气

Internet Explorer 8 上的独生子女替代方案

Internet Explorer 8 中的 CSS 伪类

PHP:如果 Internet Explorer 6、7、8 或 9