selenium-webdriver 4.0.0-alpha.5 → 4.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/CHANGES.md +35 -1
  2. package/LICENSE +1 -1
  3. package/NOTICE +1 -1
  4. package/README.md +4 -4
  5. package/chrome.js +72 -592
  6. package/chromium.js +829 -0
  7. package/devtools/CDPConnection.js +37 -0
  8. package/edge.js +124 -86
  9. package/example/chrome_android.js +16 -13
  10. package/example/chrome_mobile_emulation.js +18 -14
  11. package/example/firefox_channels.js +35 -28
  12. package/example/google_search.js +9 -9
  13. package/example/google_search_test.js +20 -22
  14. package/example/headless.js +27 -19
  15. package/example/logging.js +34 -38
  16. package/firefox.js +200 -200
  17. package/http/index.js +131 -115
  18. package/http/util.js +56 -64
  19. package/ie.js +180 -104
  20. package/index.js +246 -199
  21. package/io/exec.js +34 -39
  22. package/io/index.js +142 -152
  23. package/io/zip.js +75 -65
  24. package/lib/actions.js +140 -122
  25. package/lib/atoms/find-elements.js +124 -0
  26. package/lib/atoms/get-attribute.js +79 -59
  27. package/lib/atoms/is-displayed.js +72 -73
  28. package/lib/atoms/mutation-listener.js +38 -0
  29. package/lib/by.js +192 -65
  30. package/lib/capabilities.js +82 -78
  31. package/lib/command.js +20 -20
  32. package/lib/error.js +134 -168
  33. package/lib/http.js +337 -230
  34. package/lib/input.js +325 -302
  35. package/lib/logging.js +127 -138
  36. package/lib/promise.js +60 -66
  37. package/lib/proxy.js +31 -41
  38. package/lib/session.js +12 -15
  39. package/lib/symbols.js +3 -4
  40. package/lib/until.js +162 -160
  41. package/lib/webdriver.js +1024 -541
  42. package/net/index.js +30 -36
  43. package/net/portprober.js +31 -144
  44. package/opera.js +406 -0
  45. package/package.json +19 -12
  46. package/proxy.js +2 -2
  47. package/remote/index.js +190 -187
  48. package/safari.js +40 -49
  49. package/testing/index.js +166 -155
@@ -20,7 +20,7 @@
20
20
  *
21
21
  * To run with Chrome, ensure you have Chrome 59+ installed and that
22
22
  * chromedriver 2.30+ is present on your system PATH:
23
- * <https://sites.google.com/a/chromium.org/chromedriver/downloads>
23
+ * <https://chromedriver.chromium.org/downloads>
24
24
  *
25
25
  * SELENIUM_BROWSER=chrome node selenium-webdriver/example/headless.js
26
26
  *
@@ -31,25 +31,33 @@
31
31
  * SELENIUM_BROWSER=firefox node selenium-webdriver/example/headless.js
32
32
  */
33
33
 
34
- const chrome = require('../chrome');
35
- const firefox = require('../firefox');
36
- const {Builder, By, Key, until} = require('..');
34
+ const chrome = require('../chrome')
35
+ const firefox = require('../firefox')
36
+ const { Builder, By, Key, until } = require('..')
37
37
 
38
- const width = 640;
39
- const height = 480;
38
+ const width = 640
39
+ const height = 480
40
40
 
41
41
  let driver = new Builder()
42
- .forBrowser('chrome')
43
- .setChromeOptions(
44
- new chrome.Options().headless().windowSize({width, height}))
45
- .setFirefoxOptions(
46
- new firefox.Options().headless().windowSize({width, height}))
47
- .build();
42
+ .forBrowser('chrome')
43
+ .setChromeOptions(
44
+ new chrome.Options().headless().windowSize({ width, height })
45
+ )
46
+ .setFirefoxOptions(
47
+ new firefox.Options().headless().windowSize({ width, height })
48
+ )
49
+ .build()
48
50
 
49
- driver.get('http://www.google.com/ncr')
50
- .then(_ =>
51
- driver.findElement(By.name('q')).sendKeys('webdriver', Key.RETURN))
52
- .then(_ => driver.wait(until.titleIs('webdriver - Google Search'), 1000))
53
- .then(
54
- _ => driver.quit(),
55
- e => driver.quit().then(() => { throw e; }));
51
+ driver
52
+ .get('http://www.google.com/ncr')
53
+ .then((_) =>
54
+ driver.findElement(By.name('q')).sendKeys('webdriver', Key.RETURN)
55
+ )
56
+ .then((_) => driver.wait(until.titleIs('webdriver - Google Search'), 1000))
57
+ .then(
58
+ (_) => driver.quit(),
59
+ (e) =>
60
+ driver.quit().then(() => {
61
+ throw e
62
+ })
63
+ )
@@ -19,50 +19,46 @@
19
19
  * @fileoverview Demonstrates how to use WebDriver's logging sysem.
20
20
  */
21
21
 
22
- 'use strict';
22
+ 'use strict'
23
23
 
24
- const chrome = require('../chrome');
25
- const firefox = require('../firefox');
26
- const edge = require('../edge');
27
- const {Builder, By, Key, logging, until} = require('..');
24
+ const chrome = require('../chrome')
25
+ const firefox = require('../firefox')
26
+ const edge = require('../edge')
27
+ const { Builder, By, Key, logging, until } = require('..')
28
28
 
29
- logging.installConsoleHandler();
30
- logging.getLogger('webdriver.http').setLevel(logging.Level.ALL);
31
-
32
- (async function() {
33
- let driver;
29
+ logging.installConsoleHandler()
30
+ logging.getLogger('webdriver.http').setLevel(logging.Level.ALL)
31
+ ;(async function () {
32
+ let driver
34
33
  try {
35
34
  driver = await new Builder()
36
- // Default to using Firefox. This can be overridden at runtime by
37
- // setting the SELENIUM_BROWSER environment variable:
38
- //
39
- // SELENIUM_BROWSER=chrome node selenium-webdriver/example/logging.js
40
- .forBrowser('firefox')
41
- // Configure the service for each browser to enable verbose logging and
42
- // to inherit the stdio settings from the current process. The builder
43
- // will only start the service if needed for the selected browser.
44
- .setChromeService(
45
- new chrome.ServiceBuilder()
46
- .enableVerboseLogging()
47
- .setStdio('inherit'))
48
- .setEdgeService(
49
- process.platform === 'win32'
50
- ? new edge.ServiceBuilder()
51
- .enableVerboseLogging()
52
- .setStdio('inherit')
53
- : null)
54
- .setFirefoxService(
55
- new firefox.ServiceBuilder()
56
- .enableVerboseLogging()
57
- .setStdio('inherit'))
58
- .build();
35
+ // Default to using Firefox. This can be overridden at runtime by
36
+ // setting the SELENIUM_BROWSER environment variable:
37
+ //
38
+ // SELENIUM_BROWSER=chrome node selenium-webdriver/example/logging.js
39
+ .forBrowser('firefox')
40
+ // Configure the service for each browser to enable verbose logging and
41
+ // to inherit the stdio settings from the current process. The builder
42
+ // will only start the service if needed for the selected browser.
43
+ .setChromeService(
44
+ new chrome.ServiceBuilder().enableVerboseLogging().setStdio('inherit')
45
+ )
46
+ .setEdgeService(
47
+ process.platform === 'win32'
48
+ ? new edge.ServiceBuilder().enableVerboseLogging().setStdio('inherit')
49
+ : null
50
+ )
51
+ .setFirefoxService(
52
+ new firefox.ServiceBuilder().enableVerboseLogging().setStdio('inherit')
53
+ )
54
+ .build()
59
55
 
60
- await driver.get('http://www.google.com/ncr');
61
- await driver.findElement(By.name('q')).sendKeys('webdriver', Key.RETURN);
62
- await driver.wait(until.titleIs('webdriver - Google Search'), 1000);
56
+ await driver.get('http://www.google.com/ncr')
57
+ await driver.findElement(By.name('q')).sendKeys('webdriver', Key.RETURN)
58
+ await driver.wait(until.titleIs('webdriver - Google Search'), 1000)
63
59
  } finally {
64
60
  if (driver) {
65
- await driver.quit();
61
+ await driver.quit()
66
62
  }
67
63
  }
68
- })();
64
+ })()