aboutsummaryrefslogtreecommitdiff
path: root/node_modules/selenium-webdriver/example/firefox_channels.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/selenium-webdriver/example/firefox_channels.js')
-rw-r--r--node_modules/selenium-webdriver/example/firefox_channels.js73
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);
+});