这里是新用户。
在构建我的冒烟和回归测试数小时后,我在网上阅读了许多案例后发现,众所周知,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/