从命令行执行带有无头chrome的单个Javascript文件

时间:2019-04-26 07:46:21

标签: javascript google-chrome command-line-interface chromium

我们将PhantomJS用作简单的测试运行程序,如下所示:

phantomjs path/to/test.js

无头铬有类似的方法吗?

4 个答案:

答案 0 :(得分:2)

尝试以下示例:

const chrome = require('../chrome');
const firefox = require('../firefox');
const {Builder, By, Key, until} = require('..');

const width = 640;
const height = 480;

let driver = new Builder()
    .forBrowser('chrome')
    .setChromeOptions(
        new chrome.Options().headless().windowSize({width, height}))
    .setFirefoxOptions(
        new firefox.Options().headless().windowSize({width, height}))
    .build();

driver.get('http://www.google.com/ncr')
    .then(_ =>
        driver.findElement(By.name('q')).sendKeys('webdriver', Key.RETURN))
    .then(_ => driver.wait(until.titleIs('webdriver - Google Search'), 1000))
    .then(
        _ => driver.quit(),
        e => driver.quit().then(() => { throw e; }));

答案 1 :(得分:0)

您正在寻找Puppeteer,这是无头Chrome / Chromium的API。

一旦有了脚本(docs很好),就可以使用node script.js来运行它。

答案 2 :(得分:0)

as explained on developers.google,您可以选择使用NodeSelenium,在任何一种情况下,您都必须重写部分测试用例以使用新的api而不是{{ 3}}。

以下选项基于Node

  1. phantomjs api

我建议您直接去他们的Puppeteer获取安装和使用说明。

您的测试用例应使用github pagePuppetteer api通过以下方式编写:

node path/to/test.js

有一个run列表,您可以将puppeteerpuppeteer resourcesjestmochaangular一起使用。 >

  1. e2e
  

chrome-remote-interface library是比Puppeteer的API更底层的库。如果您想靠近金属并直接使用DevTools协议,则建议使用它。

您需要chrome-remote-interface或使用start chrome in headless modenodejs

node --inspect=9222 path/to/test.js

使用lighthouse编写javascript测试用例,并按照chrome DevTools protocol上的说明安装和运行测试。

另一个选项是使用their github page配置的Selenium to run headless Chrome使用Selenium

  1. following options
  2. ChromeDriver

答案 3 :(得分:0)

您可以使用Karma和无头Chrome进行测试。这是一个guide

木偶戏也很能做到这一点。这也是guide