@skrillex1224/playwright-toolkit 3.0.6 → 3.0.8
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/dist/index.cjs +9 -45
- package/dist/index.cjs.map +2 -2
- package/dist/index.js +9 -45
- package/dist/index.js.map +2 -2
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -6303,7 +6303,7 @@ function useCaptchaMonitor(page, options) {
|
|
|
6303
6303
|
let isStopped = false;
|
|
6304
6304
|
let isHandling = false;
|
|
6305
6305
|
let frameHandler = null;
|
|
6306
|
-
let
|
|
6306
|
+
let exposedFunctionName = null;
|
|
6307
6307
|
const triggerDetected = async () => {
|
|
6308
6308
|
if (isStopped || isHandling) return;
|
|
6309
6309
|
isHandling = true;
|
|
@@ -6315,16 +6315,12 @@ function useCaptchaMonitor(page, options) {
|
|
|
6315
6315
|
};
|
|
6316
6316
|
const cleanupFns = [];
|
|
6317
6317
|
if (domSelector) {
|
|
6318
|
-
|
|
6318
|
+
exposedFunctionName = `__c_d_${(0, import_uuid.v4)().replace(/-/g, "_")}`;
|
|
6319
6319
|
const cleanerName = `__c_cleaner_${(0, import_uuid.v4)().replace(/-/g, "_")}`;
|
|
6320
|
-
|
|
6320
|
+
page.exposeFunction(exposedFunctionName, triggerDetected).catch(() => {
|
|
6321
|
+
});
|
|
6322
|
+
page.addInitScript(({ selector, callbackName, cleanerName: cleanupName }) => {
|
|
6321
6323
|
(() => {
|
|
6322
|
-
if (typeof window[cleanupName] === "function") {
|
|
6323
|
-
try {
|
|
6324
|
-
window[cleanupName]();
|
|
6325
|
-
} catch {
|
|
6326
|
-
}
|
|
6327
|
-
}
|
|
6328
6324
|
let observer = null;
|
|
6329
6325
|
const checkAndReport = () => {
|
|
6330
6326
|
const element = document.querySelector(selector);
|
|
@@ -6350,7 +6346,7 @@ function useCaptchaMonitor(page, options) {
|
|
|
6350
6346
|
}
|
|
6351
6347
|
};
|
|
6352
6348
|
if (document.readyState === "loading") {
|
|
6353
|
-
window.addEventListener("DOMContentLoaded", mountObserver
|
|
6349
|
+
window.addEventListener("DOMContentLoaded", mountObserver);
|
|
6354
6350
|
} else {
|
|
6355
6351
|
mountObserver();
|
|
6356
6352
|
}
|
|
@@ -6361,41 +6357,9 @@ function useCaptchaMonitor(page, options) {
|
|
|
6361
6357
|
}
|
|
6362
6358
|
};
|
|
6363
6359
|
})();
|
|
6364
|
-
};
|
|
6365
|
-
|
|
6366
|
-
selector: domSelector,
|
|
6367
|
-
callbackName: exposedFunctionName,
|
|
6368
|
-
cleanerName
|
|
6369
|
-
};
|
|
6370
|
-
const domMonitorReady = (async () => {
|
|
6371
|
-
await page.exposeFunction(exposedFunctionName, triggerDetected);
|
|
6372
|
-
await page.addInitScript(installDomMonitor, installArgs);
|
|
6373
|
-
await page.evaluate(installDomMonitor, installArgs).catch(() => {
|
|
6374
|
-
});
|
|
6375
|
-
logger12.success("useCaptchaMonitor", `DOM \u76D1\u63A7\u5DF2\u542F\u7528\uFF1A${domSelector}`);
|
|
6376
|
-
})().catch((error) => {
|
|
6377
|
-
if (isStopped) {
|
|
6378
|
-
return;
|
|
6379
|
-
}
|
|
6380
|
-
logger12.warn(`DOM \u76D1\u63A7\u521D\u59CB\u5316\u5931\u8D25 (${domSelector}): ${error?.message || error}`);
|
|
6381
|
-
});
|
|
6382
|
-
domFrameHandler = async (frame) => {
|
|
6383
|
-
if (frame !== page.mainFrame() || isStopped) {
|
|
6384
|
-
return;
|
|
6385
|
-
}
|
|
6386
|
-
await domMonitorReady;
|
|
6387
|
-
if (isStopped) {
|
|
6388
|
-
return;
|
|
6389
|
-
}
|
|
6390
|
-
await page.evaluate(installDomMonitor, installArgs).catch(() => {
|
|
6391
|
-
});
|
|
6392
|
-
};
|
|
6393
|
-
page.on("framenavigated", domFrameHandler);
|
|
6360
|
+
}, { selector: domSelector, callbackName: exposedFunctionName, cleanerName });
|
|
6361
|
+
logger12.success("useCaptchaMonitor", `DOM \u76D1\u63A7\u5DF2\u542F\u7528\uFF1A${domSelector}`);
|
|
6394
6362
|
cleanupFns.push(async () => {
|
|
6395
|
-
if (domFrameHandler) {
|
|
6396
|
-
page.off("framenavigated", domFrameHandler);
|
|
6397
|
-
}
|
|
6398
|
-
await domMonitorReady;
|
|
6399
6363
|
try {
|
|
6400
6364
|
await page.evaluate((name) => {
|
|
6401
6365
|
if (window[name]) {
|
|
@@ -6426,10 +6390,10 @@ function useCaptchaMonitor(page, options) {
|
|
|
6426
6390
|
return {
|
|
6427
6391
|
stop: async () => {
|
|
6428
6392
|
logger12.info("\u6B63\u5728\u505C\u6B62\u9A8C\u8BC1\u7801\u76D1\u63A7...");
|
|
6429
|
-
isStopped = true;
|
|
6430
6393
|
for (const fn of cleanupFns) {
|
|
6431
6394
|
await fn();
|
|
6432
6395
|
}
|
|
6396
|
+
isStopped = true;
|
|
6433
6397
|
}
|
|
6434
6398
|
};
|
|
6435
6399
|
}
|