用量角器运行什么是好的无头浏览器?

时间:2015-03-25 20:45:44

标签: javascript selenium jenkins protractor headless-browser

此处有新用户。

经过几个小时的建立我的烟雾和回归测试后,我在网上阅读了很多案例后发现phantomjs与量角器有关。詹金斯一直在为它迄今为止所做的所有任务运行幻影。

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

所以如果推荐完全无头浏览器或无头镀铬(这将是最有益的)并逐步设置它,我将不胜感激。我已经有一个conf.js和一个e2e.conf.js文件。我的代码与chrome完美搭配。

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

编辑:问题=量角器不适用于phantomjs。 我做了什么=使用不同的网络元素,并搜索,如果有人遇到类似的情况。还搜索了适用于量角器的无头浏览器,无法找到合适的解决方案。

5 个答案:

答案 0 :(得分:11)

如果有人到达这里 - 答案已经过时了。 Chromium(下一版本)现在支持无头模式。没有必要努力工作。

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

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功能的量角器:

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

我的量角器配置是

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

  },

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

更新 - 如何在业力中做到这一点非常容易

在业力中使用无头铬是非常容易的:

 browsers: 'ChromeHeadless'

它应该适用于chrome loader和一切。 more info

答案 1 :(得分:9)

您最好的选择是继续使用Chrome。通过一些工作,你可以通过CI和无头的方式让它工作 - 我们使用无头的Jenkins和Docker Ubuntu服务器来做这件事。

您需要将Chrome配置为使用XVFB无头运行。您可以点击这里的要点https://gist.github.com/addyosmani/5336747

开始

您声明自己在Mac上,因此您可以通过计算机上的Docker运行无头测试,也可以为CI测试设置第二个配置。

另一个资源http://tobyho.com/2015/01/09/headless-browser-testing-xvfb/

答案 2 :(得分:1)

我会继续在普通浏览器中测试,但会使用远程selenium服务器作为服务 - Sauce LabsBrowserStack,请参阅:

答案 3 :(得分:1)

您可以针对CodeShipDrone.ioboth {/ 3}}提供针对免费运行无头Chrome和/或Firefox的量角器测试。真的没有...

答案 4 :(得分:0)

如果您已安装Chrome 59+,请使用以下标记启动Chrome:

--headless

如果您需要更多帮助,请告诉我,将为您编写配置:)享受