【问题标题】:Linux Command Line only Headless Browser Testing (React/Blaze)仅 Linux 命令行 无头浏览器测试 (React/Blaze)
【发布时间】:2017-08-23 10:27:15
【问题描述】:
我只有一个命令行 Linux,但想为我们的流星应用程序做一些 ui 测试。
所以我听说有一些库提供了无头浏览器的功能。
PhantomJS、Selenium、无头 Chrome
所以我想知道的是,没有xvfb,它们中的哪些可以工作
并且没有安装浏览器(即 chrome 或 chromium)?
我想依靠流星或 npm 包选择。充其量没有全局依赖。
我们也感谢任何用户体验。我听说 PhantomJS 不推荐使用,因为它已经过时且行为怪异。
【问题讨论】:
-
参见:How do I do X? SO 的期望是,提出问题的用户不仅会进行研究以回答他们自己的问题,还会分享研究、代码尝试和结果。这表明您已经花时间尝试帮助自己,它使我们免于重复明显的答案,最重要的是它可以帮助您获得更具体和相关的答案!另见:How to Ask
标签:
javascript
node.js
selenium
phantomjs
headless-browser
【解决方案1】:
Selenium 用于控制所有chromium、phantomjs、headless chrome。
phantomjs 在 SO 上每天都会遇到很多问题,因此您应该避免使用它。
chrome headless 是一个非常新的功能,我仍然不推荐它。而chrome 或chrome headless 都需要存在铬。
所以我建议你为此使用 docker。
docker run -d -p 4444:4444 selenium/standalone-chrome
这将在您的服务器上启动一个 chrome 节点,然后您可以在编写测试时使用的语言绑定上使用该节点。我写py
var webdriverio = require('webdriverio');
var browser = webdriverio
// setup your selenium server address.
// If you are using default settings, leave it empty
.remote({ host: 'localhost', port: 4444 })
// run browser that we want to test
.init({ browserName: 'chrome', version: '45' });
describe('webdriver.io tests', function() {
it('is a test', function() {
browser.get('http://example.com');
browser.click('.logo');
});
it('is a second test', function() {
browser.click('.link');
});
});