UNPKG

1.98 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 starting multiple WebDriver clients that run
20 * in parallel in separate control flows.
21 *
22 * This example will only work when the promise manager is enabled
23 * (see <https://github.com/SeleniumHQ/selenium/issues/2969>).
24 */
25
26var webdriver = require('..'),
27 By = webdriver.By,
28 until = webdriver.until;
29
30for (var i = 0; i < 3; i++) {
31 (function(n) {
32 var flow = new webdriver.promise.ControlFlow()
33 .on('uncaughtException', function(e) {
34 console.log('uncaughtException in flow %d: %s', n, e);
35 });
36
37 var driver = new webdriver.Builder().
38 forBrowser('firefox').
39 setControlFlow(flow). // Comment out this line to see the difference.
40 build();
41
42 // Position and resize window so it's easy to see them running together.
43 driver.manage().window().setSize(600, 400);
44 driver.manage().window().setPosition(300 * i, 400 * i);
45
46 driver.get('http://www.google.com');
47 driver.findElement(By.name('q')).sendKeys('webdriver');
48 driver.findElement(By.name('btnG')).click();
49 driver.wait(until.titleIs('webdriver - Google Search'), 1000);
50
51 driver.quit();
52 })(i);
53}
54