簡體   English   中英

從命令行使用無頭 chrome 執行單個 Javascript 文件

[英]Execute single Javascript file with headless chrome from the command line

我們使用 PhantomJS 作為簡單的測試運行器,如下所示:

phantomjs path/to/test.js

無頭鍍鉻有類似的方法嗎?

Selenium WebDriver是一個 NPM 包,可以幫助您運行無頭瀏覽器。

試試下面的例子:

const chrome = require('selenium-webdriver/chrome');
const {Builder, By, Key, until} = require('selenium-webdriver');

const width = 640;
const height = 480;

let driver = new Builder()
    .forBrowser('chrome')
    .setChromeOptions(
        new chrome.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; }));

根據API ,驅動方法返回 Promises,因此可以使用async / await語法調用:

const chrome = require('selenium-webdriver/chrome');
const {Builder, By, Key, until} = require('selenium-webdriver');

async function test() {
    const width = 640;
    const height = 480;

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

    await driver.get('http://www.google.com/ncr')
    await driver.findElement(By.name('q')).sendKeys('webdriver', Key.RETURN))
    await driver.wait(until.titleIs('webdriver - Google Search'), 1000))
    await driver.quit()
}

test();

您可以使用 Karma 和無頭 Chrome 運行測試。 這是執行此操作的指南

Puppeteer 也非常有能力做到這一點。 這也是一個指南

您正在尋找Puppeteer ,一個用於無頭 Chrome/Chromium 的 API。

一旦你有了你的腳本( 文檔很好),你可以用node script.js運行它。

正如developers.google 上所解釋的,您可以選擇使用NodeSelenium ,在任何一種情況下,您都必須重新編寫部分測試用例以使用新的 api 而不是phantomjs api

以下選項基於Node

  1. Puppeteer

我建議您前往他們的github 頁面獲取安裝和使用說明。

您的測試用例應該使用Puppetteer api編寫並運行

node path/to/test.js

有一個puppeteer 資源列表,您可以使用puppeteerjestmochaangulare2e ..

  1. chrome-remote-interface

chrome-remote-interface是比 Puppeteer 的 API 低級的庫。 如果你想接近金屬並直接使用 DevTools 協議,我推薦它。

您需要以無頭模式啟動chrome或使用lighthousenodejs

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

使用chrome DevTools protocol編寫您的javascript測試用例,並按照他們的 github 頁面上的說明安裝和運行您的測試。

另一種選擇是使用配置 為運行無頭 ChromeSelenium 以下選項使用Selenium

  1. 鉻驅動程序
  2. 網絡驅動程序

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM