运行 针对夜间 Firefox 构建的量角器

Running Protractor against a nightly Firefox build

当我尝试 运行 量角器针对 "Nightly" Firefox build 进行测试时,firefox window 无限期挂起:

这是我配置的相关部分:

exports.config = {
    baseUrl: 'http://localhost:8080/dev/src/',
    specs: ['dev/test/e2e/**/dashboard.spec.js'],
    directConnect: true,
    capabilities: {
        browserName: "firefox",
        firefox_binary: "/Applications/FirefoxNightly.app/Contents/MacOS/firefox-bin",
    },

    allScriptsTimeout: 110000,
    getPageTimeout: 100000,
    framework: 'jasmine2',
    jasmineNodeOpts: {
        isVerbose: false,
        showColors: true,
        includeStackTrace: false,
        defaultTimeoutInterval: 400000
    },
};

有一个 related issue 没有提供解决方案。

我发现的一种可能的解决方法可能是 move the WebDriver xpi extension 从稳定的 firefox 安装(或不同的来源)到 Nightly firefox 配置文件的 "extensions" 目录,但我'我不知道该怎么做。

我还发现了一些关于使用 "Marionette" driver 测试夜间 Firefox 构建的信息,但我没有找到任何关于它与 Protractor 的关系的指南。


使用:

尝试使用 directConnect 和不使用 - 相同的行为。

显然这是 issue with Firefox 46. The default FirefoxDriver no longer works with this version - you need to be using the Marionette driver. I also found a quick how-to 使用新的 driver 和 Selenium

我也遇到了同样的问题。我们 运行 我们的测试默认使用 directConnect,所以我还没有弄清楚如何让量角器使用 Marionette 而不是 FirefoxDriver

如果您将量角器连接到 Selenium,那么您应该能够按照可用的指南使 Selenium 使用新的 driver - 这应该不会影响量角器与Selenium.

的关系

更新: 调查使用最新版本的 Firefox 与 directConnect 的问题,我发现无法指示量角器使用 Marionette driver。我为此开了一个 issue with the protractor 团队。

在 Mac 和 Linux 上,我必须更新到 FF 47.0.1 selenium 2.53.1。

我最初探索尝试使用新的 Mozilla Marionette 驱动程序配置量角器,根据

的回答

我得到了量角器来使用它(下面描述了我所做的事情)。但是,我的驱动程序 运行 在我的测试中遇到了很多问题。

然后我发现讨论说 47.0.1 和 selenium 2.53.1 恢复了 FirefoxDriver 功能,因此放弃了 Marionette 驱动程序以支持兼容升级。

对于那些正在考虑配置和使用带有 Protractor 和 webdriver 的 Marionette 驱动程序的人,我执行了以下操作:

  1. 已从 https://github.com/mozilla/geckodriver/releases
  2. 下载并解压缩最新的 Marionette 驱动程序
  3. 将其重命名为电线并将其放在路径上
  4. 使用 -Dwebdriver.gecko.driver=${path_to_driver} 属性 启动了独立的 selenium webdriver 2.53.1,并使用了该服务器。
  5. 在我的配置中将我的 firefox 功能设置为 marionette true,即: multiCapabilities:[ { 'browserName': 'chrome' } }, { 'browserName': 'firefox', 'marionette' : true } ],