|
13 | 13 | var webdriver = require('selenium-webdriver');
|
14 | 14 | var chrome = require('selenium-webdriver/chrome');
|
15 | 15 | var firefox = require('selenium-webdriver/firefox');
|
| 16 | +var fs = require('fs'); |
16 | 17 |
|
17 | 18 | var sharedDriver = null;
|
18 | 19 |
|
| 20 | +function getBrowserVersion() { |
| 21 | + var browser = process.env.BROWSER; |
| 22 | + var browserChannel = process.env.BVER; |
| 23 | + var symlink = './browsers/bin/' + browser + '-' + browserChannel + '/'; |
| 24 | + var path = fs.readlink(symlink); |
| 25 | + |
| 26 | + // Browser reg expressions and position to look for the milestone version. |
| 27 | + var chromeExp = '/Chrom(e|ium)\/([0-9]+)\./'; |
| 28 | + var firefoxExp = '/Firefox\/([0-9]+)\./'; |
| 29 | + var chromePos = 2; |
| 30 | + var firefoxPos = 1; |
| 31 | + |
| 32 | + var browserVersion = function(path, expr, pos) { |
| 33 | + var match = path.match(expr); |
| 34 | + return match && match.length >= pos && parseInt(match[pos], 10); |
| 35 | + }; |
| 36 | + |
| 37 | + switch (browser) { |
| 38 | + case 'chrome': |
| 39 | + return browserVersion(path, chromeExp, chromePos); |
| 40 | + case 'firefox': |
| 41 | + return browserVersion(path, firefoxExp, firefoxPos); |
| 42 | + default: |
| 43 | + return 'non supported browser.'; |
| 44 | + } |
| 45 | +} |
| 46 | + |
19 | 47 | function buildDriver() {
|
20 | 48 | if (sharedDriver) {
|
21 | 49 | return sharedDriver;
|
@@ -45,6 +73,11 @@ function buildDriver() {
|
45 | 73 | .addArguments('use-fake-device-for-media-stream')
|
46 | 74 | .addArguments('use-fake-ui-for-media-stream');
|
47 | 75 |
|
| 76 | + // Only enable this for Chrome >= 49. |
| 77 | + if (process.env.BROWSER === 'chrome' && getBrowserVersion >= '49') { |
| 78 | + chromeOptions.addArguments('--enable-experimental-web-platform-features'); |
| 79 | + } |
| 80 | + |
48 | 81 | sharedDriver = new webdriver.Builder()
|
49 | 82 | .forBrowser(process.env.BROWSER)
|
50 | 83 | .setFirefoxOptions(firefoxOptions)
|
|
0 commit comments