Skip to content

Commit 6fa3c01

Browse files
committed
[js] Make sure examples are all updated for #2969
1 parent fe03c57 commit 6fa3c01

File tree

7 files changed

+107
-82
lines changed

7 files changed

+107
-82
lines changed

javascript/node/selenium-webdriver/example/chrome_android.js

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -21,18 +21,23 @@
2121
* AVD).
2222
*/
2323

24-
var webdriver = require('..'),
25-
By = webdriver.By,
26-
until = webdriver.until,
27-
chrome = require('../chrome');
24+
'use strict';
2825

29-
var driver = new webdriver.Builder()
30-
.forBrowser('chrome')
31-
.setChromeOptions(new chrome.Options().androidChrome())
32-
.build();
26+
const {Builder, By, promise, until} = require('..');
27+
const {Options} = require('../chrome');
3328

34-
driver.get('http://www.google.com/ncr');
35-
driver.findElement(By.name('q')).sendKeys('webdriver');
36-
driver.findElement(By.name('btnG')).click();
37-
driver.wait(until.titleIs('webdriver - Google Search'), 1000);
38-
driver.quit();
29+
promise.consume(function* () {
30+
let driver;
31+
try {
32+
driver = yield new Builder()
33+
.forBrowser('chrome')
34+
.setChromeOptions(new Options().androidChrome())
35+
.build();
36+
yield driver.get('http://www.google.com/ncr');
37+
yield driver.findElement(By.name('q')).sendKeys('webdriver');
38+
yield driver.findElement(By.name('btnG')).click();
39+
yield driver.wait(until.titleIs('webdriver - Google Search'), 1000);
40+
} finally {
41+
yield driver && driver.quit();
42+
}
43+
}).then(_ => console.log('SUCCESS'), err => console.error('ERROR: ' + err));

javascript/node/selenium-webdriver/example/chrome_mobile_emulation.js

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -20,20 +20,24 @@
2020
* ChromeDriver.
2121
*/
2222

23-
var webdriver = require('..'),
24-
By = webdriver.By,
25-
until = webdriver.until,
26-
chrome = require('../chrome');
23+
'use strict';
2724

25+
const {Builder, By, promise, until} = require('..');
26+
const {Options} = require('../chrome');
2827

29-
var driver = new webdriver.Builder()
30-
.forBrowser('chrome')
31-
.setChromeOptions(new chrome.Options()
32-
.setMobileEmulation({deviceName: 'Google Nexus 5'}))
33-
.build();
34-
35-
driver.get('http://www.google.com/ncr');
36-
driver.findElement(By.name('q')).sendKeys('webdriver');
37-
driver.findElement(By.name('btnG')).click();
38-
driver.wait(until.titleIs('webdriver - Google Search'), 1000);
39-
driver.quit();
28+
promise.consume(function* () {
29+
let driver;
30+
try {
31+
driver = yield new Builder()
32+
.forBrowser('chrome')
33+
.setChromeOptions(
34+
new Options().setMobileEmulation({deviceName: 'Google Nexus 5'}))
35+
.build();
36+
yield driver.get('http://www.google.com/ncr');
37+
yield driver.findElement(By.name('q')).sendKeys('webdriver');
38+
yield driver.findElement(By.name('btnG')).click();
39+
yield driver.wait(until.titleIs('webdriver - Google Search'), 1000);
40+
} finally {
41+
yield driver && driver.quit();
42+
}
43+
}).then(_ => console.log('SUCCESS'), err => console.error('ERROR: ' + err));

javascript/node/selenium-webdriver/example/google_search.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,10 @@
1616
// under the License.
1717

1818
/**
19-
* @fileoverview An example WebDriver script. This requires the chromedriver
20-
* to be present on the system PATH.
19+
* @fileoverview An example WebDriver script.
20+
*
21+
* Before running this script, ensure that Mozilla's geckodriver is present on
22+
* your system PATH: <https://github.com/mozilla/geckodriver/releases>
2123
*
2224
* Usage:
2325
* // Default behavior

javascript/node/selenium-webdriver/example/google_search_generator.js

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -18,28 +18,33 @@
1818
/**
1919
* @fileoverview An example WebDriver script using generator functions.
2020
*
21-
* Usage: node selenium-webdriver/example/google_search_generator.js
21+
* Before running this script, ensure that Mozilla's geckodriver is present on
22+
* your system PATH: <https://github.com/mozilla/geckodriver/releases>
23+
*
24+
* Usage:
25+
*
26+
* node selenium-webdriver/example/google_search_generator.js
2227
*/
2328

24-
var webdriver = require('..'),
25-
By = webdriver.By;
29+
'use strict';
30+
31+
const {Builder, By, promise, until} = require('..');
2632

27-
var driver = new webdriver.Builder()
28-
.forBrowser('firefox')
29-
.build();
33+
promise.consume(function* () {
34+
let driver;
35+
try {
36+
driver = yield new Builder().forBrowser('firefox').build();
3037

31-
driver.get('http://www.google.com/ncr');
32-
driver.call(function* () {
33-
var query = yield driver.findElement(By.name('q'));
34-
query.sendKeys('webdriver');
38+
yield driver.get('http://www.google.com/ncr');
3539

36-
var submit = yield driver.findElement(By.name('btnG'));
37-
submit.click();
38-
});
40+
let q = yield driver.findElement(By.name('q'));
41+
yield q.sendKeys('webdriver');
3942

40-
driver.wait(function* () {
41-
var title = yield driver.getTitle();
42-
return 'webdriver - Google Search' === title;
43-
}, 1000);
43+
let btnG = yield driver.findElement(By.name('btnG'));
44+
yield btnG.click();
4445

45-
driver.quit();
46+
yield driver.wait(until.titleIs('webdriver - Google Search'), 1000);
47+
} finally {
48+
yield driver && driver.quit();
49+
}
50+
}).then(_ => console.log('SUCCESS'), err => console.error('ERROR: ' + err));

javascript/node/selenium-webdriver/example/google_search_test.js

Lines changed: 31 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -17,31 +17,45 @@
1717

1818
/**
1919
* @fileoverview An example test that may be run using Mocha.
20-
* Usage: mocha -t 10000 selenium-webdriver/example/google_search_test.js
20+
*
21+
* Usage:
22+
*
23+
* mocha -t 10000 selenium-webdriver/example/google_search_test.js
24+
*
25+
* You can change which browser is started with the SELENIUM_BROWSER environment
26+
* variable:
27+
*
28+
* SELENIUM_BROWSER=chrome \
29+
* mocha -t 10000 selenium-webdriver/example/google_search_test.js
2130
*/
2231

23-
var webdriver = require('..'),
24-
By = webdriver.By,
25-
until = webdriver.until,
26-
test = require('../testing');
32+
const {Builder, By, until} = require('..');
33+
const test = require('../testing');
2734

2835
test.describe('Google Search', function() {
29-
var driver;
36+
let driver;
3037

31-
test.before(function() {
32-
driver = new webdriver.Builder()
33-
.forBrowser('firefox')
34-
.build();
38+
test.before(function *() {
39+
driver = yield new Builder().forBrowser('firefox').build();
3540
});
3641

37-
test.it('should append query to title', function() {
38-
driver.get('http://www.google.com');
39-
driver.findElement(By.name('q')).sendKeys('webdriver');
40-
driver.findElement(By.name('btnG')).click();
41-
driver.wait(until.titleIs('webdriver - Google Search'), 1000);
42+
// You can write tests either using traditional promises.
43+
it('works with promises', function() {
44+
return driver.get('http://www.google.com')
45+
.then(_ => driver.findElement(By.name('q')).sendKeys('webdriver'))
46+
.then(_ => driver.findElement(By.name('btnG')).click())
47+
.then(_ => driver.wait(until.titleIs('webdriver - Google Search'), 1000));
4248
});
4349

44-
test.after(function() {
45-
driver.quit();
50+
// Or you can define the test as a generator function. The test will wait for
51+
// any yielded promises to resolve before invoking the next step in the
52+
// generator.
53+
test.it('works with generators', function*() {
54+
yield driver.get('http://www.google.com/ncr');
55+
yield driver.findElement(By.name('q')).sendKeys('webdriver');
56+
yield driver.findElement(By.name('btnG')).click();
57+
yield driver.wait(until.titleIs('webdriver - Google Search'), 1000);
4658
});
59+
60+
test.after(() => driver.quit());
4761
});

javascript/node/selenium-webdriver/example/logging.js

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -21,23 +21,15 @@
2121

2222
'use strict';
2323

24-
var webdriver = require('..'),
25-
By = webdriver.By,
26-
until = webdriver.until;
24+
const {Builder, By, logging, until} = require('..');
2725

28-
webdriver.logging.installConsoleHandler();
29-
webdriver.logging.getLogger('webdriver.http')
30-
.setLevel(webdriver.logging.Level.ALL);
26+
logging.installConsoleHandler();
27+
logging.getLogger('webdriver.http').setLevel(logging.Level.ALL);
3128

32-
var driver = new webdriver.Builder()
33-
.forBrowser('firefox')
34-
.build();
29+
var driver = new Builder().forBrowser('firefox').build();
3530

36-
driver.get('http://www.google.com/ncr');
37-
38-
var searchBox = driver.wait(until.elementLocated(By.name('q')), 3000);
39-
searchBox.sendKeys('webdriver');
40-
41-
driver.findElement(By.name('btnG')).click();
42-
driver.wait(until.titleIs('webdriver - Google Search'), 1000);
43-
driver.quit();
31+
driver.get('http://www.google.com/ncr')
32+
.then(_ => driver.findElement(By.name('q')).sendKeys('webdriver'))
33+
.then(_ => driver.findElement(By.name('btnG')).click())
34+
.then(_ => driver.wait(until.titleIs('webdriver - Google Search'), 1000))
35+
.then(_ => driver.quit());

javascript/node/selenium-webdriver/example/parallel_flows.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@
1818
/**
1919
* @fileoverview An example of starting multiple WebDriver clients that run
2020
* 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>).
2124
*/
2225

2326
var webdriver = require('..'),

0 commit comments

Comments
 (0)