私はubuntuサーバー内にデプロイする必要がある自動化ツールを使用しています。私の疑問は、Selenium Webdriverでchromeをサイレントで使用できるかどうかです。
これまでに次のコードを試しましたが、ブラウザが開いたままです(Windows 10でテストを行っています)。
var webdriver = require('Selenium-webdriver'),
chrome = require('Selenium-webdriver/chrome')
By = webdriver.By,
until = webdriver.until,
options = new chrome.Options();
options.addArguments('--headless');
var path = require('chromedriver').path;
var service = new chrome.ServiceBuilder(path).build();
chrome.setDefaultService(service);
var driver = new webdriver.Builder().forBrowser('chrome').withCapabilities(options.toCapabilities()).build();
driver.get('https://www.google.com');
AddArguments( '-headless')は、ナビゲーションをサイレントにするパラメーターですが、動作していないか、気付いていないものが欠けていることに注意してください。
何か足りないことがあったら、やりたいことができるのかわからないので教えてください。この種の技術を使うのは初めてなので。
ありがとう。
2018年2月頃に回答を更新しました。
Selenium Webdriver NodeJSの例の参照(commit 5bf50c4
)
const chrome = require('Selenium-webdriver/chrome');
const firefox = require('Selenium-webdriver/firefox');
const {Builder, By, Key, until} = require('Selenium-webdriver');
const screen = {
width: 640,
height: 480
};
let driver = new Builder()
.forBrowser('chrome')
.setChromeOptions(new chrome.Options().headless().windowSize(screen))
.setFirefoxOptions(new firefox.Options().headless().windowSize(screen))
.build();
ヘッドレスChrome利用可能 メジャーバージョン59.0 APR-2017
ヘッドレスFirefoxは メジャーバージョン56.0 SEP-2017以降で利用可能
これを試してください:
var webdriver = require('Selenium-webdriver'),
chrome = require('Selenium-webdriver/chrome')
By = webdriver.By,
until = webdriver.until,
options = new chrome.Options();
options.addArguments('headless'); // note: without dashes
options.addArguments('disable-gpu')
var path = require('chromedriver').path;
var service = new chrome.ServiceBuilder(path).build();
chrome.setDefaultService(service);
var driver = new webdriver.Builder()
.forBrowser('chrome')
.withCapabilities(webdriver.Capabilities.chrome())
.setChromeOptions(options) // note this
.build();
driver.get('https://www.google.com');
残念ながらheadless()メソッドはWebdriver JSにはもう存在しません。
使用する
const seleniumWebdriver = require('Selenium-webdriver');
const chrome = require('Selenium-webdriver/chrome');
var driver = new Builder().forBrowser('chrome')
.setChromeOptions(new chrome.Options().addArguments('--headless'))
.build();
代わりに。
ヘッドレスモードでChrome=を開始するには、Options.headless()
を呼び出します。ヘッドレスモードで開始すると、現在GPUアクセラレーションも無効になります。これはコードです。
var seleniumWebdriver = require('Selenium-webdriver');
var chrome = require('Selenium-webdriver/chrome');
var options = new chrome.Options().headless();
var driver = new seleniumWebdriver.Builder()
.forBrowser('chrome')
.setChromeOptions(options)
.build();
注:セキュリティのため、Chromeヘッドレスモードの場合、デフォルトでダウンロードを無効にします。ダウンロードを再度有効にするには、setDownloadPath
を呼び出すことができます。