webdriverio 9.4.1 → 9.4.2
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/context.d.ts.map +1 -1
- package/build/index.js +125 -110
- package/build/networkManager.d.ts.map +1 -1
- package/build/utils/mobile.d.ts.map +1 -1
- package/package.json +6 -6
package/build/context.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAMA,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,kBAS7D;AAED;;;;GAIG;AACH,qBAAa,cAAc;;gBAMX,OAAO,EAAE,WAAW,CAAC,OAAO;IAkFxC;;OAEG;IACG,UAAU;IAiChB,iBAAiB,CAAE,OAAO,EAAE,MAAM;IAQ5B,iBAAiB;IAOvB,IAAI,eAAe,YAElB;IAED,IAAI,aAAa,uBAEhB;CACJ"}
|
package/build/index.js
CHANGED
|
@@ -5,7 +5,7 @@ var __export = (target, all) => {
|
|
|
5
5
|
};
|
|
6
6
|
|
|
7
7
|
// src/index.ts
|
|
8
|
-
import
|
|
8
|
+
import logger23 from "@wdio/logger";
|
|
9
9
|
import WebDriver, { DEFAULTS } from "webdriver";
|
|
10
10
|
import { validateConfig } from "@wdio/config";
|
|
11
11
|
import { enableFileLogging, wrapCommand as wrapCommand3 } from "@wdio/utils";
|
|
@@ -81,7 +81,7 @@ import { URL as URL2 } from "node:url";
|
|
|
81
81
|
import cssValue from "css-value";
|
|
82
82
|
import rgb2hex from "rgb2hex";
|
|
83
83
|
import GraphemeSplitter from "grapheme-splitter";
|
|
84
|
-
import
|
|
84
|
+
import logger22 from "@wdio/logger";
|
|
85
85
|
import isPlainObject from "is-plain-obj";
|
|
86
86
|
import { ELEMENT_KEY as ELEMENT_KEY18 } from "webdriver";
|
|
87
87
|
import { UNICODE_CHARACTERS as UNICODE_CHARACTERS2, asyncIterators, getBrowserObject as getBrowserObject34 } from "@wdio/utils";
|
|
@@ -2976,14 +2976,19 @@ var ReferenceValue = class {
|
|
|
2976
2976
|
}
|
|
2977
2977
|
};
|
|
2978
2978
|
|
|
2979
|
+
// src/context.ts
|
|
2980
|
+
import logger4 from "@wdio/logger";
|
|
2981
|
+
|
|
2979
2982
|
// src/utils/mobile.ts
|
|
2983
|
+
var appiumKeys = ["app", "bundleId", "appPackage", "appActivity", "appWaitActivity", "appWaitPackage"];
|
|
2980
2984
|
function getNativeContext({ capabilities, isMobile }) {
|
|
2981
2985
|
if (!capabilities || typeof capabilities !== "object" || !isMobile) {
|
|
2982
2986
|
return false;
|
|
2983
2987
|
}
|
|
2984
2988
|
const isAppiumAppCapPresent = (capabilities2) => {
|
|
2985
|
-
|
|
2986
|
-
|
|
2989
|
+
return appiumKeys.some(
|
|
2990
|
+
(key) => capabilities2[key] !== void 0 || capabilities2["appium:options"]?.[key] !== void 0
|
|
2991
|
+
);
|
|
2987
2992
|
};
|
|
2988
2993
|
const isBrowserNameFalse = !!capabilities?.browserName === false;
|
|
2989
2994
|
const isAutoWebviewFalse = capabilities?.autoWebview !== true;
|
|
@@ -3028,6 +3033,7 @@ function validatePinchAndZoomOptions({ browser, gesture, options }) {
|
|
|
3028
3033
|
|
|
3029
3034
|
// src/context.ts
|
|
3030
3035
|
var contextManager = /* @__PURE__ */ new Map();
|
|
3036
|
+
var log4 = logger4("webdriverio:context");
|
|
3031
3037
|
function getContextManager(browser) {
|
|
3032
3038
|
const existingContextManager = contextManager.get(browser);
|
|
3033
3039
|
if (existingContextManager) {
|
|
@@ -3094,7 +3100,15 @@ var ContextManager = class {
|
|
|
3094
3100
|
return "";
|
|
3095
3101
|
}
|
|
3096
3102
|
if (this.#browser.isMobile && !this.#isNativeContext && !this.#mobileContext) {
|
|
3097
|
-
const context = await this.#browser.getContext()
|
|
3103
|
+
const context = await this.#browser.getContext().catch((err) => {
|
|
3104
|
+
log4.warn(
|
|
3105
|
+
`Error getting context: ${err}
|
|
3106
|
+
|
|
3107
|
+
WebDriver capabilities: ${JSON.stringify(this.#browser.capabilities)}
|
|
3108
|
+
Requested WebDriver capabilities: ${JSON.stringify(this.#browser.requestedCapabilities)}`
|
|
3109
|
+
);
|
|
3110
|
+
return void 0;
|
|
3111
|
+
});
|
|
3098
3112
|
this.#mobileContext = typeof context === "string" ? context : typeof context === "object" ? context.id : void 0;
|
|
3099
3113
|
}
|
|
3100
3114
|
const windowHandle = this.#mobileContext || await this.#browser.getWindowHandle();
|
|
@@ -3123,9 +3137,9 @@ var ContextManager = class {
|
|
|
3123
3137
|
};
|
|
3124
3138
|
|
|
3125
3139
|
// src/polyfill.ts
|
|
3126
|
-
import
|
|
3140
|
+
import logger5 from "@wdio/logger";
|
|
3127
3141
|
var polyfillManager = /* @__PURE__ */ new Map();
|
|
3128
|
-
var
|
|
3142
|
+
var log5 = logger5("webdriverio:PolyfillManager");
|
|
3129
3143
|
var NAME_POLYFILL = "var __defProp = Object.defineProperty;var __name = function (target, value) { return __defProp(target, 'name', { value: value, configurable: true }); };var __globalThis = (typeof globalThis === 'object' && globalThis) || (typeof window === 'object' && window);__globalThis.__name = __name;";
|
|
3130
3144
|
function getPolyfillManager(browser) {
|
|
3131
3145
|
const existingPolyfillManager = polyfillManager.get(browser);
|
|
@@ -3151,7 +3165,7 @@ var PolyfillManager = class {
|
|
|
3151
3165
|
browser.addInitScript(polyfill, NAME_POLYFILL),
|
|
3152
3166
|
browser.execute(polyfill, NAME_POLYFILL)
|
|
3153
3167
|
]).then(() => {
|
|
3154
|
-
|
|
3168
|
+
log5.info("polyfill script added");
|
|
3155
3169
|
return true;
|
|
3156
3170
|
}, () => false);
|
|
3157
3171
|
}
|
|
@@ -3236,8 +3250,8 @@ async function executeAsync(script, ...args) {
|
|
|
3236
3250
|
}
|
|
3237
3251
|
|
|
3238
3252
|
// src/commands/browser/getCookies.ts
|
|
3239
|
-
import
|
|
3240
|
-
var
|
|
3253
|
+
import logger6 from "@wdio/logger";
|
|
3254
|
+
var log6 = logger6("webdriverio");
|
|
3241
3255
|
async function getCookies(filter) {
|
|
3242
3256
|
const usesMultipleFilter = Array.isArray(filter) && filter.length > 1;
|
|
3243
3257
|
if (!this.isBidi || usesMultipleFilter) {
|
|
@@ -3256,7 +3270,7 @@ async function getCookiesClassic(names) {
|
|
|
3256
3270
|
}
|
|
3257
3271
|
const usesMultipleFilter = Array.isArray(names) && names.length > 1;
|
|
3258
3272
|
if (usesMultipleFilter) {
|
|
3259
|
-
|
|
3273
|
+
log6.warn(
|
|
3260
3274
|
"Passing a string array as filter for `getCookies` is deprecated and its support will be removed in an upcoming version of WebdriverIO!"
|
|
3261
3275
|
);
|
|
3262
3276
|
const allCookies2 = await this.getAllCookies();
|
|
@@ -3275,7 +3289,7 @@ function getCookieFilter(names) {
|
|
|
3275
3289
|
}
|
|
3276
3290
|
return (Array.isArray(names) ? names : [names]).map((filter) => {
|
|
3277
3291
|
if (typeof filter === "string") {
|
|
3278
|
-
|
|
3292
|
+
log6.warn("Passing string values into `getCookie` is deprecated and its support will be removed in an upcoming version of WebdriverIO!");
|
|
3279
3293
|
return { name: filter };
|
|
3280
3294
|
}
|
|
3281
3295
|
return filter;
|
|
@@ -3283,9 +3297,9 @@ function getCookieFilter(names) {
|
|
|
3283
3297
|
}
|
|
3284
3298
|
|
|
3285
3299
|
// src/commands/browser/getPuppeteer.ts
|
|
3286
|
-
import
|
|
3300
|
+
import logger7 from "@wdio/logger";
|
|
3287
3301
|
import { userImport } from "@wdio/utils";
|
|
3288
|
-
var
|
|
3302
|
+
var log7 = logger7("webdriverio");
|
|
3289
3303
|
var DEBUG_PIPE_FLAG = "remote-debugging-pipe";
|
|
3290
3304
|
async function getPuppeteer() {
|
|
3291
3305
|
const puppeteer = await userImport("puppeteer-core");
|
|
@@ -3295,7 +3309,7 @@ async function getPuppeteer() {
|
|
|
3295
3309
|
);
|
|
3296
3310
|
}
|
|
3297
3311
|
if (this.puppeteer?.connected) {
|
|
3298
|
-
|
|
3312
|
+
log7.debug("Reusing existing puppeteer session");
|
|
3299
3313
|
return this.puppeteer;
|
|
3300
3314
|
}
|
|
3301
3315
|
const { headers } = this.options;
|
|
@@ -3406,7 +3420,7 @@ import { getBrowserObject as getBrowserObject6 } from "@wdio/utils";
|
|
|
3406
3420
|
|
|
3407
3421
|
// src/utils/interception/index.ts
|
|
3408
3422
|
import EventEmitter2 from "node:events";
|
|
3409
|
-
import
|
|
3423
|
+
import logger8 from "@wdio/logger";
|
|
3410
3424
|
import { URLPattern } from "urlpattern-polyfill";
|
|
3411
3425
|
|
|
3412
3426
|
// src/utils/Timer.ts
|
|
@@ -3576,7 +3590,7 @@ function getPatternParam(pattern, key) {
|
|
|
3576
3590
|
}
|
|
3577
3591
|
|
|
3578
3592
|
// src/utils/interception/index.ts
|
|
3579
|
-
var
|
|
3593
|
+
var log8 = logger8("WebDriverInterception");
|
|
3580
3594
|
var hasSubscribedToEvents = false;
|
|
3581
3595
|
var WebDriverInterception = class _WebDriverInterception {
|
|
3582
3596
|
#pattern;
|
|
@@ -3605,7 +3619,7 @@ var WebDriverInterception = class _WebDriverInterception {
|
|
|
3605
3619
|
"network.responseStarted"
|
|
3606
3620
|
]
|
|
3607
3621
|
});
|
|
3608
|
-
|
|
3622
|
+
log8.info("subscribed to network events");
|
|
3609
3623
|
hasSubscribedToEvents = true;
|
|
3610
3624
|
}
|
|
3611
3625
|
const interception = await browser.networkAddIntercept({
|
|
@@ -3766,7 +3780,7 @@ var WebDriverInterception = class _WebDriverInterception {
|
|
|
3766
3780
|
this.#respondOverwrites = [];
|
|
3767
3781
|
this.#restored = true;
|
|
3768
3782
|
const handle = await this.#browser.getWindowHandle();
|
|
3769
|
-
|
|
3783
|
+
log8.trace(`Restoring mock for ${handle}`);
|
|
3770
3784
|
SESSION_MOCKS[handle].delete(this);
|
|
3771
3785
|
if (this.#mockId) {
|
|
3772
3786
|
await this.#browser.networkRemoveIntercept({ intercept: this.#mockId });
|
|
@@ -3906,11 +3920,11 @@ async function mock(url6, filterOptions) {
|
|
|
3906
3920
|
}
|
|
3907
3921
|
|
|
3908
3922
|
// src/commands/browser/mockClearAll.ts
|
|
3909
|
-
import
|
|
3910
|
-
var
|
|
3923
|
+
import logger9 from "@wdio/logger";
|
|
3924
|
+
var log9 = logger9("webdriverio:mockClearAll");
|
|
3911
3925
|
async function mockClearAll() {
|
|
3912
3926
|
for (const [handle, mocks] of Object.entries(SESSION_MOCKS)) {
|
|
3913
|
-
|
|
3927
|
+
log9.trace(`Clearing mocks for ${handle}`);
|
|
3914
3928
|
for (const mock2 of mocks) {
|
|
3915
3929
|
mock2.clear();
|
|
3916
3930
|
}
|
|
@@ -3918,11 +3932,11 @@ async function mockClearAll() {
|
|
|
3918
3932
|
}
|
|
3919
3933
|
|
|
3920
3934
|
// src/commands/browser/mockRestoreAll.ts
|
|
3921
|
-
import
|
|
3922
|
-
var
|
|
3935
|
+
import logger10 from "@wdio/logger";
|
|
3936
|
+
var log10 = logger10("webdriverio:mockRestoreAll");
|
|
3923
3937
|
async function mockRestoreAll() {
|
|
3924
3938
|
for (const [handle, mocks] of Object.entries(SESSION_MOCKS)) {
|
|
3925
|
-
|
|
3939
|
+
log10.trace(`Clearing mocks for ${handle}`);
|
|
3926
3940
|
for (const mock2 of mocks) {
|
|
3927
3941
|
await mock2.restore();
|
|
3928
3942
|
}
|
|
@@ -3932,8 +3946,8 @@ async function mockRestoreAll() {
|
|
|
3932
3946
|
// src/commands/browser/newWindow.ts
|
|
3933
3947
|
import { sleep } from "@wdio/utils";
|
|
3934
3948
|
import newWindowHelper from "./scripts/newWindow.js";
|
|
3935
|
-
import
|
|
3936
|
-
var
|
|
3949
|
+
import logger11 from "@wdio/logger";
|
|
3950
|
+
var log11 = logger11("webdriverio:newWindow");
|
|
3937
3951
|
var WAIT_FOR_NEW_HANDLE_TIMEOUT = 3e3;
|
|
3938
3952
|
async function newWindow(url6, { type = "window", windowName = "", windowFeatures = "" } = {}) {
|
|
3939
3953
|
if (typeof url6 !== "string") {
|
|
@@ -3943,7 +3957,7 @@ async function newWindow(url6, { type = "window", windowName = "", windowFeature
|
|
|
3943
3957
|
throw new Error(`Invalid type '${type}' provided to newWindow command. Use either 'tab' or 'window'`);
|
|
3944
3958
|
}
|
|
3945
3959
|
if (windowName || windowFeatures) {
|
|
3946
|
-
|
|
3960
|
+
log11.warn('The "windowName" and "windowFeatures" options are deprecated and only supported in WebDriver Classic sessions.');
|
|
3947
3961
|
}
|
|
3948
3962
|
if (this.isMobile) {
|
|
3949
3963
|
throw new Error("newWindow command is not supported on mobile platforms");
|
|
@@ -4025,19 +4039,19 @@ async function react$(selector, { props = {}, state = {} } = {}) {
|
|
|
4025
4039
|
}
|
|
4026
4040
|
|
|
4027
4041
|
// src/commands/browser/reloadSession.ts
|
|
4028
|
-
import
|
|
4029
|
-
var
|
|
4042
|
+
import logger12 from "@wdio/logger";
|
|
4043
|
+
var log12 = logger12("webdriverio");
|
|
4030
4044
|
async function reloadSession(newCapabilities) {
|
|
4031
4045
|
const oldSessionId = this.sessionId;
|
|
4032
4046
|
const shutdownDriver = Boolean(newCapabilities?.browserName);
|
|
4033
4047
|
try {
|
|
4034
4048
|
await this.deleteSession({ shutdownDriver });
|
|
4035
4049
|
} catch (err) {
|
|
4036
|
-
|
|
4050
|
+
log12.warn(`Suppressing error closing the session: ${err.stack}`);
|
|
4037
4051
|
}
|
|
4038
4052
|
if (this.puppeteer?.connected) {
|
|
4039
4053
|
this.puppeteer.disconnect();
|
|
4040
|
-
|
|
4054
|
+
log12.debug("Disconnected puppeteer session");
|
|
4041
4055
|
}
|
|
4042
4056
|
const ProtocolDriver = (await import(
|
|
4043
4057
|
/* @vite-ignore */
|
|
@@ -4131,11 +4145,11 @@ async function saveScreenshot(filepath) {
|
|
|
4131
4145
|
}
|
|
4132
4146
|
|
|
4133
4147
|
// src/commands/browser/scroll.ts
|
|
4134
|
-
import
|
|
4135
|
-
var
|
|
4148
|
+
import logger13 from "@wdio/logger";
|
|
4149
|
+
var log13 = logger13("webdriverio");
|
|
4136
4150
|
function scroll(x = 0, y = 0) {
|
|
4137
4151
|
if (!x && !y) {
|
|
4138
|
-
return
|
|
4152
|
+
return log13.warn('"scroll" command was called with no parameters, skipping execution');
|
|
4139
4153
|
}
|
|
4140
4154
|
if (this.isMobile) {
|
|
4141
4155
|
return this.execute((x2, y2) => window.scrollBy(x2, y2), x, y);
|
|
@@ -4278,9 +4292,9 @@ async function switchWindow(matcher) {
|
|
|
4278
4292
|
}
|
|
4279
4293
|
|
|
4280
4294
|
// src/commands/browser/switchFrame.ts
|
|
4281
|
-
import
|
|
4295
|
+
import logger14 from "@wdio/logger";
|
|
4282
4296
|
import { ELEMENT_KEY as ELEMENT_KEY8 } from "webdriver";
|
|
4283
|
-
var
|
|
4297
|
+
var log14 = logger14("webdriverio:switchFrame");
|
|
4284
4298
|
async function switchFrame(context) {
|
|
4285
4299
|
function isPossiblyUnresolvedElement(input) {
|
|
4286
4300
|
return Boolean(input) && typeof input === "object" && typeof input.getElement === "function";
|
|
@@ -4318,13 +4332,13 @@ async function switchFrame(context) {
|
|
|
4318
4332
|
const urlContextContaining = findContext(context, tree.contexts, byUrlContaining);
|
|
4319
4333
|
const contextIdContext = findContext(context, tree.contexts, byContextId);
|
|
4320
4334
|
if (urlContext) {
|
|
4321
|
-
|
|
4335
|
+
log14.info(`Found context by url "${urlContext.url}" with context id "${urlContext.context}"`);
|
|
4322
4336
|
newContextId = urlContext.context;
|
|
4323
4337
|
} else if (urlContextContaining) {
|
|
4324
|
-
|
|
4338
|
+
log14.info(`Found context by url containing "${urlContextContaining.url}" with context id "${urlContextContaining.context}"`);
|
|
4325
4339
|
newContextId = urlContextContaining.context;
|
|
4326
4340
|
} else if (contextIdContext) {
|
|
4327
|
-
|
|
4341
|
+
log14.info(`Found context by id "${contextIdContext}" with url "${contextIdContext.url}"`);
|
|
4328
4342
|
newContextId = contextIdContext.context;
|
|
4329
4343
|
}
|
|
4330
4344
|
if (!newContextId) {
|
|
@@ -4351,7 +4365,7 @@ async function switchFrame(context) {
|
|
|
4351
4365
|
arguments: args.map((arg) => LocalValue.getArgument(arg)),
|
|
4352
4366
|
target: { context: id }
|
|
4353
4367
|
};
|
|
4354
|
-
const result = await this.scriptCallFunction(params).catch((err) =>
|
|
4368
|
+
const result = await this.scriptCallFunction(params).catch((err) => log14.warn(`Failed to identify frame context id: ${err.message}`));
|
|
4355
4369
|
if (!result) {
|
|
4356
4370
|
return [];
|
|
4357
4371
|
}
|
|
@@ -4381,13 +4395,13 @@ async function switchFrame(context) {
|
|
|
4381
4395
|
let desiredFrame;
|
|
4382
4396
|
let desiredContext = newContextId;
|
|
4383
4397
|
const contextQueue = [];
|
|
4384
|
-
|
|
4398
|
+
log14.info(`Available frames to switch to: ${allFrames.length}, desired context to switch: ${desiredContext}`);
|
|
4385
4399
|
while (desiredContext !== currentContext) {
|
|
4386
4400
|
desiredFrame = allFrames.find(({ context: context2 }) => context2 === desiredContext);
|
|
4387
4401
|
if (!desiredFrame) {
|
|
4388
4402
|
break;
|
|
4389
4403
|
}
|
|
4390
|
-
|
|
4404
|
+
log14.info(
|
|
4391
4405
|
contextQueue.length === 0 ? `Found desired frame with element id ${desiredFrame.frameElement[ELEMENT_KEY8]}` : `to switch to desired frame, we need to switch to ${desiredFrame.context} first`
|
|
4392
4406
|
);
|
|
4393
4407
|
contextQueue.unshift(desiredFrame);
|
|
@@ -4423,7 +4437,7 @@ async function switchFrame(context) {
|
|
|
4423
4437
|
arguments: [],
|
|
4424
4438
|
target: { context: contextId }
|
|
4425
4439
|
};
|
|
4426
|
-
const result = await this.scriptCallFunction(params).catch((err) =>
|
|
4440
|
+
const result = await this.scriptCallFunction(params).catch((err) => log14.warn(`switchFrame context callback threw error: ${err.message}`));
|
|
4427
4441
|
if (!result || result.type !== "success" || result.result.type !== "boolean" || !result.result.value) {
|
|
4428
4442
|
continue;
|
|
4429
4443
|
}
|
|
@@ -4494,11 +4508,11 @@ function switchToFrame(browser, frame) {
|
|
|
4494
4508
|
}
|
|
4495
4509
|
|
|
4496
4510
|
// src/commands/browser/throttle.ts
|
|
4497
|
-
import
|
|
4511
|
+
import logger15 from "@wdio/logger";
|
|
4498
4512
|
import { getBrowserObject as getBrowserObject9 } from "@wdio/utils";
|
|
4499
|
-
var
|
|
4513
|
+
var log15 = logger15("webdriverio:throttle");
|
|
4500
4514
|
async function throttle(params) {
|
|
4501
|
-
|
|
4515
|
+
log15.warn('Command "throttle" is deprecated and will be removed with the next major version release! Use `throttleNetwork` instead.');
|
|
4502
4516
|
const browser = getBrowserObject9(this);
|
|
4503
4517
|
await browser.throttleNetwork(params);
|
|
4504
4518
|
}
|
|
@@ -4655,6 +4669,7 @@ function getNetworkManager(browser) {
|
|
|
4655
4669
|
return newContext;
|
|
4656
4670
|
}
|
|
4657
4671
|
var UNKNOWN_NAVIGATION_ID = "UNKNOWN_NAVIGATION_ID";
|
|
4672
|
+
var SUPPORTED_NAVIGATION_PROTOCOLS = ["http", "https", "data", "file"];
|
|
4658
4673
|
var NetworkManager = class {
|
|
4659
4674
|
#browser;
|
|
4660
4675
|
#initialize;
|
|
@@ -4682,15 +4697,15 @@ var NetworkManager = class {
|
|
|
4682
4697
|
async initialize() {
|
|
4683
4698
|
return this.#initialize;
|
|
4684
4699
|
}
|
|
4685
|
-
#beforeRequestSent(
|
|
4686
|
-
if (
|
|
4700
|
+
#beforeRequestSent(log23) {
|
|
4701
|
+
if (log23.navigation) {
|
|
4687
4702
|
return;
|
|
4688
4703
|
}
|
|
4689
|
-
const request = this.#findRootRequest(
|
|
4704
|
+
const request = this.#findRootRequest(log23.navigation);
|
|
4690
4705
|
if (!request) {
|
|
4691
4706
|
return;
|
|
4692
4707
|
}
|
|
4693
|
-
const { request: id, headers, cookies, url: url6 } =
|
|
4708
|
+
const { request: id, headers, cookies, url: url6 } = log23.request;
|
|
4694
4709
|
request.children?.push({
|
|
4695
4710
|
id,
|
|
4696
4711
|
url: url6,
|
|
@@ -4706,51 +4721,51 @@ var NetworkManager = class {
|
|
|
4706
4721
|
sameSite: cookie.sameSite,
|
|
4707
4722
|
expiry: cookie.expiry
|
|
4708
4723
|
})),
|
|
4709
|
-
timestamp:
|
|
4724
|
+
timestamp: log23.timestamp
|
|
4710
4725
|
});
|
|
4711
4726
|
}
|
|
4712
|
-
#navigationStarted(
|
|
4727
|
+
#navigationStarted(log23) {
|
|
4713
4728
|
if (
|
|
4714
4729
|
/**
|
|
4715
4730
|
* we need a navigation id to identify the request
|
|
4716
4731
|
*/
|
|
4717
|
-
!
|
|
4718
|
-
* ignore urls that
|
|
4732
|
+
!log23.navigation || /**
|
|
4733
|
+
* ignore urls that users wouldn't navigate to
|
|
4719
4734
|
*/
|
|
4720
|
-
!
|
|
4735
|
+
!SUPPORTED_NAVIGATION_PROTOCOLS.some((protocol) => log23.url.startsWith(protocol))
|
|
4721
4736
|
) {
|
|
4722
|
-
if (
|
|
4737
|
+
if (log23.navigation === null && log23.url === "") {
|
|
4723
4738
|
this.#lastNetworkId = UNKNOWN_NAVIGATION_ID;
|
|
4724
4739
|
return this.#requests.set(UNKNOWN_NAVIGATION_ID, {
|
|
4725
4740
|
url: "",
|
|
4726
4741
|
headers: {},
|
|
4727
|
-
timestamp:
|
|
4742
|
+
timestamp: log23.timestamp,
|
|
4728
4743
|
redirectChain: [],
|
|
4729
4744
|
children: []
|
|
4730
4745
|
});
|
|
4731
4746
|
}
|
|
4732
4747
|
return;
|
|
4733
4748
|
}
|
|
4734
|
-
this.#lastNetworkId =
|
|
4735
|
-
this.#requests.set(
|
|
4736
|
-
url:
|
|
4749
|
+
this.#lastNetworkId = log23.navigation;
|
|
4750
|
+
this.#requests.set(log23.navigation, {
|
|
4751
|
+
url: log23.url,
|
|
4737
4752
|
headers: {},
|
|
4738
|
-
timestamp:
|
|
4739
|
-
navigation:
|
|
4753
|
+
timestamp: log23.timestamp,
|
|
4754
|
+
navigation: log23.navigation,
|
|
4740
4755
|
redirectChain: [],
|
|
4741
4756
|
children: []
|
|
4742
4757
|
});
|
|
4743
4758
|
}
|
|
4744
|
-
#fetchError(
|
|
4745
|
-
const response = this.#findRootRequest(
|
|
4759
|
+
#fetchError(log23) {
|
|
4760
|
+
const response = this.#findRootRequest(log23.navigation);
|
|
4746
4761
|
if (!response) {
|
|
4747
4762
|
return;
|
|
4748
4763
|
}
|
|
4749
|
-
const request = response.children?.find((child) => child.id ===
|
|
4764
|
+
const request = response.children?.find((child) => child.id === log23.request.request);
|
|
4750
4765
|
if (!request) {
|
|
4751
4766
|
return;
|
|
4752
4767
|
}
|
|
4753
|
-
request.error =
|
|
4768
|
+
request.error = log23.errorText;
|
|
4754
4769
|
}
|
|
4755
4770
|
#findRootRequest(navigationId) {
|
|
4756
4771
|
const response = this.#requests.get(navigationId || UNKNOWN_NAVIGATION_ID);
|
|
@@ -4760,22 +4775,22 @@ var NetworkManager = class {
|
|
|
4760
4775
|
const firstRequest = this.#requests.values().next().value;
|
|
4761
4776
|
return this.#lastNetworkId ? this.#requests.get(this.#lastNetworkId) || firstRequest : firstRequest;
|
|
4762
4777
|
}
|
|
4763
|
-
#responseCompleted(
|
|
4764
|
-
const response = this.#findRootRequest(
|
|
4778
|
+
#responseCompleted(log23) {
|
|
4779
|
+
const response = this.#findRootRequest(log23.navigation);
|
|
4765
4780
|
if (!response) {
|
|
4766
4781
|
return;
|
|
4767
4782
|
}
|
|
4768
4783
|
if (!response.navigation && response.url === "") {
|
|
4769
|
-
response.url =
|
|
4770
|
-
response.navigation =
|
|
4784
|
+
response.url = log23.request.url;
|
|
4785
|
+
response.navigation = log23.navigation;
|
|
4771
4786
|
}
|
|
4772
|
-
if (
|
|
4773
|
-
if (response.url !==
|
|
4787
|
+
if (log23.navigation === response.navigation) {
|
|
4788
|
+
if (response.url !== log23.response.url) {
|
|
4774
4789
|
response.redirectChain?.push(response.url);
|
|
4775
4790
|
}
|
|
4776
|
-
response.url =
|
|
4777
|
-
const { headers: requestHeaders } =
|
|
4778
|
-
const { fromCache, headers: responseHeaders, mimeType, status } =
|
|
4791
|
+
response.url = log23.response.url;
|
|
4792
|
+
const { headers: requestHeaders } = log23.request;
|
|
4793
|
+
const { fromCache, headers: responseHeaders, mimeType, status } = log23.response;
|
|
4779
4794
|
response.headers = headerListToObject(requestHeaders), response.response = {
|
|
4780
4795
|
fromCache,
|
|
4781
4796
|
headers: headerListToObject(responseHeaders),
|
|
@@ -4784,15 +4799,15 @@ var NetworkManager = class {
|
|
|
4784
4799
|
};
|
|
4785
4800
|
return;
|
|
4786
4801
|
}
|
|
4787
|
-
const request = response.children?.find((child) => child.id ===
|
|
4802
|
+
const request = response.children?.find((child) => child.id === log23.request.request);
|
|
4788
4803
|
if (!request) {
|
|
4789
4804
|
return;
|
|
4790
4805
|
}
|
|
4791
4806
|
request.response = {
|
|
4792
|
-
fromCache:
|
|
4793
|
-
headers: headerListToObject(
|
|
4794
|
-
mimeType:
|
|
4795
|
-
status:
|
|
4807
|
+
fromCache: log23.response.fromCache,
|
|
4808
|
+
headers: headerListToObject(log23.response.headers),
|
|
4809
|
+
mimeType: log23.response.mimeType,
|
|
4810
|
+
status: log23.response.status
|
|
4796
4811
|
};
|
|
4797
4812
|
response.children?.push(request);
|
|
4798
4813
|
}
|
|
@@ -5022,9 +5037,9 @@ function clearValue() {
|
|
|
5022
5037
|
}
|
|
5023
5038
|
|
|
5024
5039
|
// src/commands/element/click.ts
|
|
5025
|
-
import
|
|
5040
|
+
import logger16 from "@wdio/logger";
|
|
5026
5041
|
import { getBrowserObject as getBrowserObject11 } from "@wdio/utils";
|
|
5027
|
-
var
|
|
5042
|
+
var log16 = logger16("webdriver");
|
|
5028
5043
|
function click(options) {
|
|
5029
5044
|
if (typeof options !== "undefined") {
|
|
5030
5045
|
if (typeof options !== "object" || Array.isArray(options)) {
|
|
@@ -5071,10 +5086,10 @@ async function actionClick(element, options) {
|
|
|
5071
5086
|
if (x || y) {
|
|
5072
5087
|
const { width, height } = await browser.getElementRect(element.elementId);
|
|
5073
5088
|
if (x && x < -Math.floor(width / 2) || x && x > Math.floor(width / 2)) {
|
|
5074
|
-
|
|
5089
|
+
log16.warn("x would cause a out of bounds error as it goes outside of element");
|
|
5075
5090
|
}
|
|
5076
5091
|
if (y && y < -Math.floor(height / 2) || y && y > Math.floor(height / 2)) {
|
|
5077
|
-
|
|
5092
|
+
log16.warn("y would cause a out of bounds error as it goes outside of element");
|
|
5078
5093
|
}
|
|
5079
5094
|
}
|
|
5080
5095
|
const clickNested = async () => {
|
|
@@ -5295,10 +5310,10 @@ import { prettify as prettifyFn } from "htmlfy";
|
|
|
5295
5310
|
import { getBrowserObject as getBrowserObject19 } from "@wdio/utils";
|
|
5296
5311
|
|
|
5297
5312
|
// src/shadowRoot.ts
|
|
5298
|
-
import
|
|
5313
|
+
import logger17 from "@wdio/logger";
|
|
5299
5314
|
import customElementWrapper from "./scripts/customElement.js";
|
|
5300
5315
|
var shadowRootManager = /* @__PURE__ */ new Map();
|
|
5301
|
-
var
|
|
5316
|
+
var log17 = logger17("webdriverio:ShadowRootManager");
|
|
5302
5317
|
function getShadowRootManager(browser) {
|
|
5303
5318
|
const existingShadowRootManager = shadowRootManager.get(browser);
|
|
5304
5319
|
if (existingShadowRootManager) {
|
|
@@ -5409,9 +5424,9 @@ var ShadowRootManager = class {
|
|
|
5409
5424
|
!shadowElem.value?.shadowRoot?.sharedId || // we expect the shadow root to have a proper type
|
|
5410
5425
|
shadowElem.value.shadowRoot.value?.nodeType !== 11
|
|
5411
5426
|
) {
|
|
5412
|
-
return
|
|
5427
|
+
return log17.warn(`Expected element with shadow root but found <${shadowElem.value?.localName} />`);
|
|
5413
5428
|
}
|
|
5414
|
-
|
|
5429
|
+
log17.info(`Registered new shadow root for element <${shadowElem.value.localName} /> with id ${shadowElem.value.shadowRoot.sharedId}`);
|
|
5415
5430
|
const newTree = new ShadowRootTree(
|
|
5416
5431
|
shadowElem.sharedId,
|
|
5417
5432
|
shadowElem.value.shadowRoot.sharedId,
|
|
@@ -5837,18 +5852,18 @@ async function isStable() {
|
|
|
5837
5852
|
}
|
|
5838
5853
|
|
|
5839
5854
|
// src/commands/element/moveTo.ts
|
|
5840
|
-
import
|
|
5855
|
+
import logger18 from "@wdio/logger";
|
|
5841
5856
|
import { getBrowserObject as getBrowserObject25 } from "@wdio/utils";
|
|
5842
|
-
var
|
|
5857
|
+
var log18 = logger18("webdriver");
|
|
5843
5858
|
async function moveTo({ xOffset, yOffset } = {}) {
|
|
5844
5859
|
const browser = getBrowserObject25(this);
|
|
5845
5860
|
if (xOffset || yOffset) {
|
|
5846
5861
|
const { width, height } = await browser.getElementRect(this.elementId);
|
|
5847
5862
|
if (xOffset && xOffset < -Math.floor(width / 2) || xOffset && xOffset > Math.floor(width / 2)) {
|
|
5848
|
-
|
|
5863
|
+
log18.warn("xOffset would cause a out of bounds error as it goes outside of element");
|
|
5849
5864
|
}
|
|
5850
5865
|
if (yOffset && yOffset < -Math.floor(height / 2) || yOffset && yOffset > Math.floor(height / 2)) {
|
|
5851
|
-
|
|
5866
|
+
log18.warn("yOffset would cause a out of bounds error as it goes outside of element");
|
|
5852
5867
|
}
|
|
5853
5868
|
}
|
|
5854
5869
|
const moveToNested = async () => {
|
|
@@ -5958,7 +5973,7 @@ async function saveScreenshot2(filepath) {
|
|
|
5958
5973
|
}
|
|
5959
5974
|
|
|
5960
5975
|
// src/commands/element/scrollIntoView.ts
|
|
5961
|
-
import
|
|
5976
|
+
import logger19 from "@wdio/logger";
|
|
5962
5977
|
import { ELEMENT_KEY as ELEMENT_KEY17 } from "webdriver";
|
|
5963
5978
|
import { getBrowserObject as getBrowserObject28 } from "@wdio/utils";
|
|
5964
5979
|
|
|
@@ -5972,7 +5987,7 @@ var MobileScrollDirection = /* @__PURE__ */ ((MobileScrollDirection2) => {
|
|
|
5972
5987
|
})(MobileScrollDirection || {});
|
|
5973
5988
|
|
|
5974
5989
|
// src/commands/element/scrollIntoView.ts
|
|
5975
|
-
var
|
|
5990
|
+
var log19 = logger19("webdriverio");
|
|
5976
5991
|
async function scrollIntoView(options = { block: "start", inline: "nearest" }) {
|
|
5977
5992
|
const browser = getBrowserObject28(this);
|
|
5978
5993
|
if (browser.isMobile) {
|
|
@@ -6025,7 +6040,7 @@ async function scrollIntoView(options = { block: "start", inline: "nearest" }) {
|
|
|
6025
6040
|
deltaY = Math.round(deltaY - scrollY);
|
|
6026
6041
|
await browser.action("wheel").scroll({ duration: 0, x: deltaX, y: deltaY, origin: this }).perform();
|
|
6027
6042
|
} catch (err) {
|
|
6028
|
-
|
|
6043
|
+
log19.warn(
|
|
6029
6044
|
`Failed to execute "scrollIntoView" using WebDriver Actions API: ${err.message}!
|
|
6030
6045
|
Re-attempting using \`Element.scrollIntoView\` via Web API.`
|
|
6031
6046
|
);
|
|
@@ -6205,7 +6220,7 @@ async function setValue(value) {
|
|
|
6205
6220
|
}
|
|
6206
6221
|
|
|
6207
6222
|
// src/commands/element/shadow$$.ts
|
|
6208
|
-
import
|
|
6223
|
+
import logger20 from "@wdio/logger";
|
|
6209
6224
|
import { getBrowserObject as getBrowserObject29 } from "@wdio/utils";
|
|
6210
6225
|
import { SHADOW_ELEMENT_KEY } from "webdriver";
|
|
6211
6226
|
import { shadowFnFactory } from "./scripts/shadowFnFactory.js";
|
|
@@ -6533,7 +6548,7 @@ var createRoleBaseXpathSelector = (role) => {
|
|
|
6533
6548
|
};
|
|
6534
6549
|
|
|
6535
6550
|
// src/commands/element/shadow$$.ts
|
|
6536
|
-
var
|
|
6551
|
+
var log20 = logger20("webdriverio");
|
|
6537
6552
|
async function shadow$$(selector) {
|
|
6538
6553
|
const browser = getBrowserObject29(this);
|
|
6539
6554
|
try {
|
|
@@ -6543,7 +6558,7 @@ async function shadow$$(selector) {
|
|
|
6543
6558
|
const elements = await getElements.call(this, selector, res, { isShadowElement: true });
|
|
6544
6559
|
return enhanceElementsArray(elements, this, selector);
|
|
6545
6560
|
} catch (err) {
|
|
6546
|
-
|
|
6561
|
+
log20.warn(
|
|
6547
6562
|
`Failed to fetch element within shadow DOM using WebDriver command: ${err.message}!
|
|
6548
6563
|
Falling back to JavaScript shim.`
|
|
6549
6564
|
);
|
|
@@ -6552,11 +6567,11 @@ Falling back to JavaScript shim.`
|
|
|
6552
6567
|
}
|
|
6553
6568
|
|
|
6554
6569
|
// src/commands/element/shadow$.ts
|
|
6555
|
-
import
|
|
6570
|
+
import logger21 from "@wdio/logger";
|
|
6556
6571
|
import { SHADOW_ELEMENT_KEY as SHADOW_ELEMENT_KEY2 } from "webdriver";
|
|
6557
6572
|
import { shadowFnFactory as shadowFnFactory2 } from "./scripts/shadowFnFactory.js";
|
|
6558
6573
|
import { getBrowserObject as getBrowserObject30 } from "@wdio/utils";
|
|
6559
|
-
var
|
|
6574
|
+
var log21 = logger21("webdriverio");
|
|
6560
6575
|
async function shadow$(selector) {
|
|
6561
6576
|
const browser = getBrowserObject30(this);
|
|
6562
6577
|
try {
|
|
@@ -6565,7 +6580,7 @@ async function shadow$(selector) {
|
|
|
6565
6580
|
const res = await browser.findElementFromShadowRoot(shadowRoot[SHADOW_ELEMENT_KEY2], using, value);
|
|
6566
6581
|
return getElement.call(this, selector, res, { isShadowElement: true });
|
|
6567
6582
|
} catch (err) {
|
|
6568
|
-
|
|
6583
|
+
log21.warn(
|
|
6569
6584
|
`Failed to fetch element within shadow DOM using WebDriver command: ${err.message}!
|
|
6570
6585
|
Falling back to JavaScript shim.`
|
|
6571
6586
|
);
|
|
@@ -6924,7 +6939,7 @@ function querySelectorAllDeep(findMany, s, r) {
|
|
|
6924
6939
|
}
|
|
6925
6940
|
|
|
6926
6941
|
// src/utils/index.ts
|
|
6927
|
-
var
|
|
6942
|
+
var log22 = logger22("webdriverio");
|
|
6928
6943
|
var INVALID_SELECTOR_ERROR = "selector needs to be typeof `string` or `function`";
|
|
6929
6944
|
var IGNORED_COMMAND_FILE_EXPORTS = ["SESSION_MOCKS", "CDP_SESSIONS"];
|
|
6930
6945
|
var scopes = {
|
|
@@ -7092,7 +7107,7 @@ async function findDeepElement(selector) {
|
|
|
7092
7107
|
})).then((elems) => elems.filter(([isIn]) => isIn).map(([, elem]) => elem));
|
|
7093
7108
|
return scopedNodes[0];
|
|
7094
7109
|
}, (err) => {
|
|
7095
|
-
|
|
7110
|
+
log22.warn(`Failed to execute browser.browsingContextLocateNodes({ ... }) due to ${err}, falling back to regular WebDriver Classic command`);
|
|
7096
7111
|
return this && "elementId" in this && this.elementId ? this.findElementFromElement(this.elementId, using, value) : browser.findElement(using, value);
|
|
7097
7112
|
});
|
|
7098
7113
|
if (!deepElementResult) {
|
|
@@ -7130,7 +7145,7 @@ async function findDeepElements(selector) {
|
|
|
7130
7145
|
})).then((elems) => elems.filter(([isIn]) => isIn).map(([, elem]) => elem));
|
|
7131
7146
|
return scopedNodes;
|
|
7132
7147
|
}, (err) => {
|
|
7133
|
-
|
|
7148
|
+
log22.warn(`Failed to execute browser.browsingContextLocateNodes({ ... }) due to ${err}, falling back to regular WebDriver Classic command`);
|
|
7134
7149
|
return this && "elementId" in this && this.elementId ? this.findElementsFromElement(this.elementId, using, value) : browser.findElements(using, value);
|
|
7135
7150
|
});
|
|
7136
7151
|
return deepElementResult;
|
|
@@ -7258,7 +7273,7 @@ async function getElementRect(scope) {
|
|
|
7258
7273
|
if (rectJs && typeof rectJs[key] === "number") {
|
|
7259
7274
|
rect[key] = Math.floor(rectJs[key]);
|
|
7260
7275
|
} else {
|
|
7261
|
-
|
|
7276
|
+
log22.error("getElementRect", { rect, rectJs, key });
|
|
7262
7277
|
throw new Error("Failed to receive element rects via execute command");
|
|
7263
7278
|
}
|
|
7264
7279
|
});
|
|
@@ -7727,14 +7742,14 @@ var DialogManager = class {
|
|
|
7727
7742
|
/**
|
|
7728
7743
|
* capture shadow root elements propagated through console.debug
|
|
7729
7744
|
*/
|
|
7730
|
-
async #handleUserPrompt(
|
|
7745
|
+
async #handleUserPrompt(log23) {
|
|
7731
7746
|
if (this.#autoHandleDialog) {
|
|
7732
7747
|
return this.#browser.browsingContextHandleUserPrompt({
|
|
7733
7748
|
accept: false,
|
|
7734
|
-
context:
|
|
7749
|
+
context: log23.context
|
|
7735
7750
|
});
|
|
7736
7751
|
}
|
|
7737
|
-
const dialog = new Dialog(
|
|
7752
|
+
const dialog = new Dialog(log23, this.#browser);
|
|
7738
7753
|
this.#browser.emit("dialog", dialog);
|
|
7739
7754
|
}
|
|
7740
7755
|
/**
|
|
@@ -7797,7 +7812,7 @@ var remote = async function(params, remoteModifier) {
|
|
|
7797
7812
|
const keysToKeep = Object.keys(process.env.WDIO_WORKER_ID ? params : DEFAULTS);
|
|
7798
7813
|
const config = validateConfig(WDIO_DEFAULTS, params, keysToKeep);
|
|
7799
7814
|
await enableFileLogging(config.outputDir);
|
|
7800
|
-
|
|
7815
|
+
logger23.setLogLevelsConfig(config.logLevels, config.logLevel);
|
|
7801
7816
|
const modifier = (client, options2) => {
|
|
7802
7817
|
Object.assign(options2, Object.entries(config).reduce((a, [k, v]) => typeof v === "undefined" ? a : { ...a, [k]: v }, {}));
|
|
7803
7818
|
if (typeof remoteModifier === "function") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"networkManager.d.ts","sourceRoot":"","sources":["../src/networkManager.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,0CAAiD,CAAA;AAE5E,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,kBAS7D;
|
|
1
|
+
{"version":3,"file":"networkManager.d.ts","sourceRoot":"","sources":["../src/networkManager.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,0CAAiD,CAAA;AAE5E,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,kBAS7D;AAMD;;;;GAIG;AACH,qBAAa,cAAc;;gBAMX,OAAO,EAAE,WAAW,CAAC,OAAO;IA4BlC,UAAU;IA8JhB,sBAAsB,CAAC,YAAY,EAAE,MAAM;IAI3C;;;;OAIG;IACH,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,WAAW,CAAC,OAAO,EAAE;CAqBlE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mobile.d.ts","sourceRoot":"","sources":["../../src/utils/mobile.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"mobile.d.ts","sourceRoot":"","sources":["../../src/utils/mobile.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAKtD,wBAAgB,gBAAgB,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,EACvD;IAAE,YAAY,EAAE,WAAW,CAAC,YAAY,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,GAC9D,OAAO,CAgBT;AAED,wBAAgB,gBAAgB,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,EACzE;IAAE,YAAY,EAAE,WAAW,CAAC,YAAY,CAAC;IAAC,SAAS,EAAE,OAAO,CAAC;IAAC,eAAe,EAAE,OAAO,CAAA;CAAE,GACzF,MAAM,GAAG,SAAS,CAMpB;AAED,wBAAgB,iCAAiC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,EAC1E;IAAE,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAClE,MAAM,CAUR;AAED,wBAAgB,2BAA2B,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EACrE;IAAE,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAA;CAAE,GACnG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CA4BrC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "webdriverio",
|
|
3
3
|
"description": "Next-gen browser and mobile automation test framework for Node.js",
|
|
4
|
-
"version": "9.4.
|
|
4
|
+
"version": "9.4.2",
|
|
5
5
|
"homepage": "https://webdriver.io",
|
|
6
6
|
"author": "Christian Bromann <mail@bromann.dev>",
|
|
7
7
|
"license": "MIT",
|
|
@@ -76,12 +76,12 @@
|
|
|
76
76
|
"dependencies": {
|
|
77
77
|
"@types/node": "^20.11.30",
|
|
78
78
|
"@types/sinonjs__fake-timers": "^8.1.5",
|
|
79
|
-
"@wdio/config": "9.2
|
|
79
|
+
"@wdio/config": "9.4.2",
|
|
80
80
|
"@wdio/logger": "9.1.3",
|
|
81
81
|
"@wdio/protocols": "9.2.2",
|
|
82
82
|
"@wdio/repl": "9.0.8",
|
|
83
|
-
"@wdio/types": "9.
|
|
84
|
-
"@wdio/utils": "9.2
|
|
83
|
+
"@wdio/types": "9.4.2",
|
|
84
|
+
"@wdio/utils": "9.4.2",
|
|
85
85
|
"archiver": "^7.0.1",
|
|
86
86
|
"aria-query": "^5.3.0",
|
|
87
87
|
"cheerio": "^1.0.0-rc.12",
|
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
"rgb2hex": "0.2.5",
|
|
101
101
|
"serialize-error": "^11.0.3",
|
|
102
102
|
"urlpattern-polyfill": "^10.0.0",
|
|
103
|
-
"webdriver": "9.4.
|
|
103
|
+
"webdriver": "9.4.2"
|
|
104
104
|
},
|
|
105
105
|
"peerDependencies": {
|
|
106
106
|
"puppeteer-core": "^22.3.0"
|
|
@@ -110,5 +110,5 @@
|
|
|
110
110
|
"optional": true
|
|
111
111
|
}
|
|
112
112
|
},
|
|
113
|
-
"gitHead": "
|
|
113
|
+
"gitHead": "e42d3e8d6958fd9a734fe1d9a9768357b6045893"
|
|
114
114
|
}
|