webdriver 8.14.3 → 8.14.6
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.
- package/build/command.js +1 -1
- package/build/driver/index.d.ts.map +1 -1
- package/build/driver/index.js +35 -5
- package/build/driver/utils.d.ts.map +1 -1
- package/build/driver/utils.js +1 -0
- package/build/index.js +1 -1
- package/package.json +5 -5
package/build/command.js
CHANGED
|
@@ -95,7 +95,7 @@ export default function (method, endpointUri, commandInfo, doubleEncodeVariables
|
|
|
95
95
|
/**
|
|
96
96
|
* kill driver process if there is one
|
|
97
97
|
*/
|
|
98
|
-
if (this._driverProcess) {
|
|
98
|
+
if (this._driverProcess && body.deleteSessionOpts?.shutdownDriver !== false) {
|
|
99
99
|
log.info(`Kill ${this._driverProcess.spawnfile} driver process with command line: ${this._driverProcess.spawnargs.slice(1).join(' ')}`);
|
|
100
100
|
const killedSuccessfully = this._driverProcess.kill('SIGKILL');
|
|
101
101
|
if (!killedSuccessfully) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/driver/index.ts"],"names":[],"mappings":";AAIA,OAAO,EAAyB,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/driver/index.ts"],"names":[],"mappings":";AAIA,OAAO,EAAyB,MAAM,oBAAoB,CAAA;AAO1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAE1C,OAAO,EAA8B,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACnF,OAAO,EAA6B,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACnF,OAAO,EAA4B,KAAK,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAChF,OAAO,EAA2C,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAElG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAO/C,MAAM,WAAW,oBAAqB,SAAQ,YAAY,CAAC,YAAY,EAAE,iBAAiB;CAAG;AAC7F,MAAM,MAAM,mBAAmB,GAAG,cAAc,GAAG,IAAI,CAAC,oBAAoB,EAAE,MAAM,GAAG,mBAAmB,GAAG,sBAAsB,CAAC,CAAA;AAEpI,MAAM,WAAW,iBAAiB;IAC9B,0BAA0B,CAAC,EAAE,mBAAmB,CAAA;IAChD,0BAA0B,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAA;IAC9D,yBAAyB,CAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAA;IAC/D,wBAAwB,CAAC,EAAE,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAA;CAChE;AAED,wBAAsB,cAAc,CAAE,OAAO,EAAE,OAAO,CAAC,SAAS,wCAsK/D"}
|
package/build/driver/index.js
CHANGED
|
@@ -3,6 +3,7 @@ import fsp from 'node:fs/promises';
|
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import path from 'node:path';
|
|
5
5
|
import cp from 'node:child_process';
|
|
6
|
+
import got from 'got';
|
|
6
7
|
import getPort from 'get-port';
|
|
7
8
|
import waitPort from 'wait-port';
|
|
8
9
|
import logger from '@wdio/logger';
|
|
@@ -48,6 +49,7 @@ export async function startWebDriver(options) {
|
|
|
48
49
|
/**
|
|
49
50
|
* Chrome
|
|
50
51
|
*/
|
|
52
|
+
caps.browserName = caps.browserName.toLowerCase();
|
|
51
53
|
const chromedriverOptions = caps['wdio:chromedriverOptions'] || {};
|
|
52
54
|
const cacheDir = chromedriverOptions.cacheDir || options.cacheDir || os.tmpdir();
|
|
53
55
|
const exist = await fsp.access(cacheDir).then(() => true, () => false);
|
|
@@ -55,22 +57,47 @@ export async function startWebDriver(options) {
|
|
|
55
57
|
await fsp.mkdir(cacheDir, { recursive: true });
|
|
56
58
|
}
|
|
57
59
|
const { executablePath, buildId, platform } = await setupChrome(caps, cacheDir);
|
|
58
|
-
|
|
60
|
+
let chromedriverBinaryPath = computeExecutablePath({
|
|
59
61
|
browser: Browser.CHROMEDRIVER,
|
|
60
62
|
buildId,
|
|
61
63
|
cacheDir
|
|
62
64
|
});
|
|
65
|
+
let loggedBuildId = buildId;
|
|
63
66
|
const hasChromedriverInstalled = await fsp.access(chromedriverBinaryPath).then(() => true, () => false);
|
|
64
67
|
if (!hasChromedriverInstalled) {
|
|
65
68
|
log.info(`Downloading Chromedriver v${buildId}`);
|
|
66
|
-
|
|
69
|
+
const chromedriverInstallOpts = {
|
|
67
70
|
...chromedriverOptions,
|
|
68
71
|
cacheDir,
|
|
69
72
|
platform,
|
|
70
73
|
buildId,
|
|
71
74
|
browser: Browser.CHROMEDRIVER,
|
|
75
|
+
unpack: true,
|
|
72
76
|
downloadProgressCallback: (downloadedBytes, totalBytes) => downloadProgressCallback('Chromedriver', downloadedBytes, totalBytes)
|
|
73
|
-
}
|
|
77
|
+
};
|
|
78
|
+
try {
|
|
79
|
+
await install({ ...chromedriverInstallOpts, buildId });
|
|
80
|
+
}
|
|
81
|
+
catch (err) {
|
|
82
|
+
/**
|
|
83
|
+
* in case we detect a Chrome browser installed for which there is no Chromedriver available
|
|
84
|
+
* we are falling back to the latest known good version
|
|
85
|
+
*/
|
|
86
|
+
log.warn(`Couldn't download Chromedriver v${buildId}: ${err.message}, trying to find known good version...`);
|
|
87
|
+
const majorVersion = buildId.split('.')[0];
|
|
88
|
+
const knownGoodVersions = await got('https://googlechromelabs.github.io/chrome-for-testing/known-good-versions.json').json();
|
|
89
|
+
const knownGoodVersion = knownGoodVersions.versions.filter(({ version }) => version.startsWith(majorVersion)).pop();
|
|
90
|
+
if (!knownGoodVersion) {
|
|
91
|
+
throw new Error(`Couldn't find known good version for Chromedriver v${majorVersion}`);
|
|
92
|
+
}
|
|
93
|
+
loggedBuildId = knownGoodVersion.version;
|
|
94
|
+
await install({ ...chromedriverInstallOpts, buildId: loggedBuildId });
|
|
95
|
+
chromedriverBinaryPath = computeExecutablePath({
|
|
96
|
+
browser: Browser.CHROMEDRIVER,
|
|
97
|
+
buildId: loggedBuildId,
|
|
98
|
+
cacheDir
|
|
99
|
+
});
|
|
100
|
+
}
|
|
74
101
|
}
|
|
75
102
|
else {
|
|
76
103
|
log.info(`Using Chromedriver v${buildId} from cache directory ${cacheDir}`);
|
|
@@ -80,7 +107,7 @@ export async function startWebDriver(options) {
|
|
|
80
107
|
chromedriverOptions.allowedIps = chromedriverOptions.allowedIps || [''];
|
|
81
108
|
const driverParams = parseParams({ port, ...chromedriverOptions });
|
|
82
109
|
driverProcess = cp.spawn(chromedriverBinaryPath, driverParams);
|
|
83
|
-
driver = `
|
|
110
|
+
driver = `Chromedriver v${loggedBuildId} with params ${driverParams.join(' ')}`;
|
|
84
111
|
}
|
|
85
112
|
else if (SUPPORTED_BROWSERNAMES.safari.includes(caps.browserName.toLowerCase())) {
|
|
86
113
|
const safaridriverOptions = caps['wdio:safaridriverOptions'] || {};
|
|
@@ -114,7 +141,10 @@ export async function startWebDriver(options) {
|
|
|
114
141
|
const edgedriverOptions = caps['wdio:edgedriverOptions'] || {};
|
|
115
142
|
const cacheDir = edgedriverOptions.cacheDir || options.cacheDir || os.tmpdir();
|
|
116
143
|
driver = 'EdgeDriver';
|
|
117
|
-
driverProcess = await startEdgedriver({ ...edgedriverOptions, cacheDir, port })
|
|
144
|
+
driverProcess = await startEdgedriver({ ...edgedriverOptions, cacheDir, port }).catch((err) => {
|
|
145
|
+
log.warn(`Couldn't start EdgeDriver: ${err.message}, retry ...`);
|
|
146
|
+
return startEdgedriver({ ...edgedriverOptions, cacheDir, port });
|
|
147
|
+
});
|
|
118
148
|
/**
|
|
119
149
|
* Microsoft Edge is very particular when it comes to browser names
|
|
120
150
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/driver/utils.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAOxD,wBAAgB,WAAW,CAAC,MAAM,EAAE,oBAAoB,YAYvD;AAED,wBAAgB,kBAAkB,uBAOjC;AAED,wBAAgB,gBAAgB,CAAC,UAAU,CAAC,EAAE,MAAM,sBAenD;AAGD,eAAO,MAAM,wBAAwB,aAAc,MAAM,mBAAmB,MAAM,cAAc,MAAM,SAOrG,CAAA;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM;;;;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/driver/utils.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAOxD,wBAAgB,WAAW,CAAC,MAAM,EAAE,oBAAoB,YAYvD;AAED,wBAAgB,kBAAkB,uBAOjC;AAED,wBAAgB,gBAAgB,CAAC,UAAU,CAAC,EAAE,MAAM,sBAenD;AAGD,eAAO,MAAM,wBAAwB,aAAc,MAAM,mBAAmB,MAAM,cAAc,MAAM,SAOrG,CAAA;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM;;;;GA4ClF;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,WAO7D"}
|
package/build/driver/utils.js
CHANGED
|
@@ -80,6 +80,7 @@ export async function setupChrome(caps, cacheDir) {
|
|
|
80
80
|
const tag = caps.browserVersion || ChromeReleaseChannel.STABLE;
|
|
81
81
|
const buildId = await resolveBuildId(Browser.CHROME, platform, tag);
|
|
82
82
|
const installOptions = {
|
|
83
|
+
unpack: true,
|
|
83
84
|
cacheDir,
|
|
84
85
|
platform,
|
|
85
86
|
buildId,
|
package/build/index.js
CHANGED
|
@@ -23,8 +23,8 @@ export default class WebDriver {
|
|
|
23
23
|
process.env.WDIO_LOG_PATH = path.join(params.outputDir, 'wdio.log');
|
|
24
24
|
}
|
|
25
25
|
log.info('Initiate new session using the WebDriver protocol');
|
|
26
|
-
const requestedCapabilities = { ...params.capabilities };
|
|
27
26
|
const driverProcess = await startWebDriver(params);
|
|
27
|
+
const requestedCapabilities = { ...params.capabilities };
|
|
28
28
|
const { sessionId, capabilities } = await startWebDriverSession(params);
|
|
29
29
|
const environment = sessionEnvironmentDetector({ capabilities, requestedCapabilities });
|
|
30
30
|
const environmentPrototype = getEnvironmentVars(environment);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "webdriver",
|
|
3
|
-
"version": "8.14.
|
|
3
|
+
"version": "8.14.6",
|
|
4
4
|
"description": "A Node.js bindings implementation for the W3C WebDriver and Mobile JSONWire Protocol",
|
|
5
5
|
"author": "Christian Bromann <mail@bromann.dev>",
|
|
6
6
|
"homepage": "https://github.com/webdriverio/webdriverio/tree/main/packages/webdriver",
|
|
@@ -39,16 +39,16 @@
|
|
|
39
39
|
"@puppeteer/browsers": "^1.4.6",
|
|
40
40
|
"@types/node": "^20.1.0",
|
|
41
41
|
"@types/ws": "^8.5.3",
|
|
42
|
-
"@wdio/config": "8.14.
|
|
42
|
+
"@wdio/config": "8.14.6",
|
|
43
43
|
"@wdio/logger": "8.11.0",
|
|
44
|
-
"@wdio/protocols": "8.
|
|
44
|
+
"@wdio/protocols": "8.14.6",
|
|
45
45
|
"@wdio/types": "8.14.0",
|
|
46
46
|
"@wdio/utils": "8.14.0",
|
|
47
47
|
"chrome-launcher": "^1.0.0",
|
|
48
48
|
"decamelize": "^6.0.0",
|
|
49
49
|
"deepmerge-ts": "^5.1.0",
|
|
50
50
|
"edgedriver": "^5.3.2",
|
|
51
|
-
"geckodriver": "^4.
|
|
51
|
+
"geckodriver": "^4.2.0",
|
|
52
52
|
"get-port": "^7.0.0",
|
|
53
53
|
"got": "^ 12.6.1",
|
|
54
54
|
"ky": "^0.33.0",
|
|
@@ -56,5 +56,5 @@
|
|
|
56
56
|
"wait-port": "^1.0.4",
|
|
57
57
|
"ws": "^8.8.0"
|
|
58
58
|
},
|
|
59
|
-
"gitHead": "
|
|
59
|
+
"gitHead": "84472108356bc234e6765ba9ffd84867aea2df2a"
|
|
60
60
|
}
|