// 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, Key, promise, until } = require('..') const { Channel, Options } = require('../firefox') let i = 0 function resposition(driver) { return driver .manage() .window() .setRect({ width: 600, height: 400, x: 300 * i++, y: 0, }) } async function doSearch(driver) { try { // Start on the base about page. await driver.get('about:') // Reposition so users can see the three windows. await resposition(driver) // Pause so users can see the magic. await promise.delayed(750) // Now do the rest. 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) console.log('Success!') } catch (ex) { console.log('An error occured! ' + ex) } finally { await driver.quit() } } function createDriver(channel) { let options = new Options().setBinary(channel) return new Builder().forBrowser('firefox').setFirefoxOptions(options).build() } Promise.all([ doSearch(createDriver(Channel.RELEASE)), doSearch(createDriver(Channel.AURORA)), // Developer Edition. doSearch(createDriver(Channel.NIGHTLY)), ]).then( (_) => { console.log('All done!') }, (err) => { console.error('An error occured! ' + err) setTimeout(() => { throw err }, 0) } )