Internet Explorer 8 64位和Selenium不工作

时间:2009-10-04 22:55:07

标签: windows windows-7 64-bit selenium

我正在尝试运行selenium测试。然而,每当我尝试运行应该运行IE的测试时,我在htmlutils.js的第863行出现错误它说我应该禁用弹出窗口阻止程序。问题是我去了IE工具 - >转向弹出窗口。

因此它被禁用,我收到此错误。

我需要禁用其他内容吗?我实际上甚至不知道它运行的是什么版本的Internet Explorer,因为我使用的是Windows 7 Pro 64位版本。因此,当我使用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消息存储在哪里?也许我也可以发帖。

8 个答案:

答案 0 :(得分:18)

我在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/");

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

答案 1 :(得分:11)

我在Windows 7 64bit上碰到了这个。

我的解决方案是:

  1. 禁用弹出窗口块。 - 选择“工具/弹出窗口阻止程序/关闭弹出窗口阻止程序”

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

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

答案 2 :(得分:8)

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

答案 3 :(得分:0)

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

我仍在努力为自己找到答案,但我想我会在这里发帖告诉你我在使某些东西工作方面取得了一些进展,尽管在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,那么很棒。

希望这有助于您解决所有问题。

答案 4 :(得分:0)

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

我用过:

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

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

答案 5 :(得分:0)

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

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

约翰。

答案 6 :(得分:0)

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

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

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

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

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

这是超级笨重的,但它至少让你超越那部分。如果我找到更有条理的方法来做这些事情,我会根据需要进行更新。

答案 7 :(得分:-1)

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