javascript - 什么是与 Protractor 一起运行的好 headless 浏览器?

标签 javascript selenium jenkins protractor headless-browser

这里是新用户。

在构建我的冒烟和回归测试数小时后,我在网上阅读了许多案例后发现,众所周知,phantomjs 很难与 Protractor 一起运行。到目前为止,Jenkins 一直在运行 phantomjs 来完成所有的任务。

他们需要这些测试作为没有安装窗口系统的 ci 的一部分运行。

因此,如果有完全 headless 浏览器或 headless chrome(这将是最有益的)的建议并逐步设置它,我将不胜感激。我已经有一个 conf.js 和一个 e2e.conf.js 文件。我的代码在 chrome 上运行得很好。

我相信我使用的是 iMac 和 selenium webdriver。

编辑:问题 = Protractor 不适用于 phantomjs。 我所做的=使用不同的网络元素并用谷歌搜索是否有人遇到过类似情况。还用谷歌搜索了适用于 Protractor 的 headless 浏览器,但找不到合适的解决方案。

最佳答案

如果有人到达此处 - 答案已过时。 Chromium(下一个版本)现在支持 headless 模式。无需努力工作。

您可以在这里阅读更多内容:

https://developers.google.com/web/updates/2017/04/headless-chrome

这是命令行的例子

chrome \
 --headless \                   # Runs Chrome in headless mode.
 --disable-gpu \                # Temporarily needed for now.
 --remote-debugging-port=9222 \
 https://www.chromestatus.com   # URL to open. Defaults to about:blank.

而且您可以简单地触发具有 chrome 功能的 Protractor :

Activating chrome language flags when activating from protractor (selenium)

这是我正在使用的配置

 capabilities: {
    'browserName': browserName,
    chromeOptions: {
      binary: '/Users/guymograbi/Downloads/chrome-mac/Chromium.app/Contents/MacOS/Chromium',
      args: ['--headless','--disable-gpu']
    }
  },

更新 - 新版本的 chrome 不需要 binary 属性

在我的环境中,我发现我可以删除 binary 属性,因为新版本的 chrome 可以在稳定的分支上使用

我的 Protractor 配置是

capabilities: {
    'browserName': 'chrome',
    chromeOptions: {
      args: [ '--headless', '--disable-gpu', '--no-sandbox', '--window-size=1920x1200' ]
    },

  },

它现在可以顺利运行数周。强烈推荐。

更新 - 如何在 karma 中做到这一点非常简单

在 karma 中使用 headless chrome 非常简单:

 browsers: 'ChromeHeadless'

它应该可以与 chrome 加载器和所有东西一起使用。 more info

关于javascript - 什么是与 Protractor 一起运行的好 headless 浏览器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29266167/

相关文章:

python - 如何处理 python WebDriver 中的零星 BadStatusLine、CannotSendRequest 错误

Jenkins从站无法与主站连接: Incorrect acknowledgement sequence

javascript - 我很难定义和显示用户输入的字符串数组的平均值并显示 3.4 以上的所有数字

javascript - 子表单关闭后刷新父页面

javascript - R/Shiny 的 dygraphs 包中突出显示图例的系列

git - 使用 Jenkins/Git 增加 Maven 项目版本

jenkins - 具有多个命名空间的 Kubernetes 集群上下文

javascript - Jquery 查找下一个(指定)元素不起作用

c# - 使用基类在多个浏览器中运行 Selenium 测试

ruby - 在 Cucumber Ruby 中使用 Selenium ChromeDriver 在 W3C 模式下无法调用非 W3C 标准命令 (Selenium::WebDriver::Error::UnknownCommandError)