gpt4 book ai didi

node.js - Selenium/WebdriverIO Chrome headless ?

转载 作者:IT老高 更新时间:2023-10-28 23:01:07 26 4
gpt4 key购买 nike

是否可以使用 Selenium 进行自动浏览器测试/WebdriverIO在 headless 模式下使用 Chrome?

据说是 Chrome --headless现在是一件事,但我无法让他们的示例正常工作。我希望 Selenium 有这个选项?


我正在像这样初始化 WebdriverIO:

const WebdriverIO = require('webdriverio');

let driver = WebdriverIO.remote({
desiredCapabilities: {
browserName: browser, // "chrome" or "firefox"
},
});

我正在使用 selenium-standalone 启动 Selenium :

selenium-standalone start > /dev/null 2>&1

最佳答案

WebdriverIO

这是一个使用 WebdriverIO 的工作示例:https://github.com/OliverJAsh/webdriverio-chrome-headless/blob/5f231990310023f63f9ea8581567e0d56e2d53ea/src/index.ts

基本思路:

 import * as webdriverio from 'webdriverio';

// Headless is supported in Chrome >= 58. Not currently stable, so using dev
// build.
const CHROME_BIN_PATH = '/Applications/Google Chrome Dev.app/Contents/MacOS/Google Chrome';

const options = {
desiredCapabilities: {
browserName: 'chrome',
chromeOptions: {
binary: CHROME_BIN_PATH,
args: [
'headless',
// Use --disable-gpu to avoid an error from a missing Mesa
// library, as per
// https://chromium.googlesource.com/chromium/src/+/lkgr/headless/README.md
'disable-gpu',
],
},
},
};
webdriverio
.remote(options)
.init()
.url('http://www.google.com')
.getTitle().then(title => {
console.log({ title });
})
.end();

WebDriverJS

这是一个使用 WebDriverJs(WebDriver 的官方 JavaScript 客户端)的工作示例:https://github.com/OliverJAsh/webdriverjs-chrome-headless/blob/554ea2f150e962257119703c2473753b90842087/src/index.ts

基本思路:

import * as webdriver from 'selenium-webdriver';
import * as chromeDriver from 'selenium-webdriver/chrome';

// Headless is supported in Chrome >= 58. Not currently stable, so using dev
// build.
const CHROME_BIN_PATH = '/Applications/Google Chrome Dev.app/Contents/MacOS/Google Chrome';

const options = new chromeDriver.Options();
options.setChromeBinaryPath(CHROME_BIN_PATH);
options.addArguments(
'headless',
// Use --disable-gpu to avoid an error from a missing Mesa library, as per
// https://chromium.googlesource.com/chromium/src/+/lkgr/headless/README.md
'disable-gpu',
);

const driver = new webdriver.Builder()
.forBrowser('chrome')
.setChromeOptions(options)
.build();

关于node.js - Selenium/WebdriverIO Chrome headless ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42303119/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com