UNPKG

2.13 kBJavaScriptView Raw
1// Licensed to the Software Freedom Conservancy (SFC) under one
2// or more contributor license agreements. See the NOTICE file
3// distributed with this work for additional information
4// regarding copyright ownership. The SFC licenses this file
5// to you under the Apache License, Version 2.0 (the
6// "License"); you may not use this file except in compliance
7// with the License. You may obtain a copy of the License at
8//
9// http://www.apache.org/licenses/LICENSE-2.0
10//
11// Unless required by applicable law or agreed to in writing,
12// software distributed under the License is distributed on an
13// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14// KIND, either express or implied. See the License for the
15// specific language governing permissions and limitations
16// under the License.
17
18/**
19 * @fileoverview An example of running Chrome or Firefox in headless mode.
20 *
21 * To run with Chrome, ensure you have Chrome 59+ installed and that
22 * chromedriver 2.30+ is present on your system PATH:
23 * <https://chromedriver.chromium.org/downloads>
24 *
25 * SELENIUM_BROWSER=chrome node selenium-webdriver/example/headless.js
26 *
27 * To run with Firefox, ensure you have Firefox 57+ installed and that
28 * geckodriver 0.19.0+ is present on your system PATH:
29 * <https://github.com/mozilla/geckodriver/releases>
30 *
31 * SELENIUM_BROWSER=firefox node selenium-webdriver/example/headless.js
32 */
33
34const chrome = require('../chrome')
35const firefox = require('../firefox')
36const { Builder, By, Key, until } = require('..')
37
38const width = 640
39const height = 480
40
41let driver = new Builder()
42 .forBrowser('chrome')
43 .setChromeOptions(
44 new chrome.Options().headless().windowSize({ width, height })
45 )
46 .setFirefoxOptions(
47 new firefox.Options().headless().windowSize({ width, height })
48 )
49 .build()
50
51driver
52 .get('http://www.google.com/ncr')
53 .then((_) =>
54 driver.findElement(By.name('q')).sendKeys('webdriver', Key.RETURN)
55 )
56 .then((_) => driver.wait(until.titleIs('webdriver - Google Search'), 1000))
57 .then(
58 (_) => driver.quit(),
59 (e) =>
60 driver.quit().then(() => {
61 throw e
62 })
63 )