diff options
author | Florian Dold <florian.dold@gmail.com> | 2017-05-03 15:35:00 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2017-05-03 15:35:00 +0200 |
commit | de98e0b232509d5f40c135d540a70e415272ff85 (patch) | |
tree | a79222a5b58484ab3b80d18efcaaa7ccc4769b33 /node_modules/selenium-webdriver/example/firefox_channels.js | |
parent | e0c9d480a73fa629c1e4a47d3e721f1d2d345406 (diff) |
node_modules
Diffstat (limited to 'node_modules/selenium-webdriver/example/firefox_channels.js')
-rw-r--r-- | node_modules/selenium-webdriver/example/firefox_channels.js | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/node_modules/selenium-webdriver/example/firefox_channels.js b/node_modules/selenium-webdriver/example/firefox_channels.js new file mode 100644 index 000000000..b0a30f545 --- /dev/null +++ b/node_modules/selenium-webdriver/example/firefox_channels.js @@ -0,0 +1,73 @@ +// Licensed to the Software Freedom Conservancy (SFC) under one +// or more contributor license agreements. See the NOTICE file +// distributed with this work for additional information +// regarding copyright ownership. The SFC licenses this file +// to you under the Apache License, Version 2.0 (the +// "License"); you may not use this file except in compliance +// with the License. You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +/** + * @fileoverview This is an example of working with the different Firefox + * release channels. Before running this example, you will need to have + * installed Firefox's release, nightly, and developer editions: + * + * - https://www.mozilla.org/en-US/firefox/channel/desktop/#aurora + * - https://www.mozilla.org/en-US/firefox/channel/desktop/#nightly + */ + + +'use strict'; + +const {Builder, By, promise, until} = require('..'); +const {Channel, Options} = require('../firefox'); + +let i = 0; +function resposition(driver) { + return driver.manage().window().setSize(600, 400) + .then(_ => driver.manage().window().setPosition(300 * (i++), 0)); +} + +function doSearch(driver) { + // Start on the base about page. + return driver.get('about:') + // Reposition so users can see the three windows. + .then(_ => resposition(driver)) + // Pause so users can see the magic. + .then(_ => promise.delayed(750)) + // Now do the rest. + .then(_ => driver.get('http://www.google.com/ncr')) + .then(_ => driver.findElement(By.name('q')).sendKeys('webdriver')) + .then(_ => driver.findElement(By.name('btnG')).click()) + .then(_ => driver.wait(until.titleIs('webdriver - Google Search'), 1000)) + .then(_ => driver.quit()); +} + +function createDriver(channel) { + let options = new Options().setBinary(channel); + return new Builder().forBrowser('firefox').setFirefoxOptions(options).build(); +} + +// NOTE: disabling the promise manager so searches all run concurrently. +// For more on the promise manager and its pending deprecation, see +// https://github.com/SeleniumHQ/selenium/issues/2969 +promise.USE_PROMISE_MANAGER = false; + +Promise.all([ + doSearch(createDriver(Channel.RELEASE)), + doSearch(createDriver(Channel.AURORA)), // Developer Edition. + doSearch(createDriver(Channel.NIGHTLY)), +]).then(_ => { + console.log('Success!'); +}, err => { + console.error('An error occured! ' + err); + setTimeout(() => {throw err}, 0); +}); |