@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.js
CHANGED
|
@@ -6275,7 +6275,7 @@ function useCaptchaMonitor(page, options) {
|
|
|
6275
6275
|
let isStopped = false;
|
|
6276
6276
|
let isHandling = false;
|
|
6277
6277
|
let frameHandler = null;
|
|
6278
|
-
let
|
|
6278
|
+
let exposedFunctionName = null;
|
|
6279
6279
|
const triggerDetected = async () => {
|
|
6280
6280
|
if (isStopped || isHandling) return;
|
|
6281
6281
|
isHandling = true;
|
|
@@ -6287,16 +6287,12 @@ function useCaptchaMonitor(page, options) {
|
|
|
6287
6287
|
};
|
|
6288
6288
|
const cleanupFns = [];
|
|
6289
6289
|
if (domSelector) {
|
|
6290
|
-
|
|
6290
|
+
exposedFunctionName = `__c_d_${uuidv4().replace(/-/g, "_")}`;
|
|
6291
6291
|
const cleanerName = `__c_cleaner_${uuidv4().replace(/-/g, "_")}`;
|
|
6292
|
-
|
|
6292
|
+
page.exposeFunction(exposedFunctionName, triggerDetected).catch(() => {
|
|
6293
|
+
});
|
|
6294
|
+
page.addInitScript(({ selector, callbackName, cleanerName: cleanupName }) => {
|
|
6293
6295
|
(() => {
|
|
6294
|
-
if (typeof window[cleanupName] === "function") {
|
|
6295
|
-
try {
|
|
6296
|
-
window[cleanupName]();
|
|
6297
|
-
} catch {
|
|
6298
|
-
}
|
|
6299
|
-
}
|
|
6300
6296
|
let observer = null;
|
|
6301
6297
|
const checkAndReport = () => {
|
|
6302
6298
|
const element = document.querySelector(selector);
|
|
@@ -6322,7 +6318,7 @@ function useCaptchaMonitor(page, options) {
|
|
|
6322
6318
|
}
|
|
6323
6319
|
};
|
|
6324
6320
|
if (document.readyState === "loading") {
|
|
6325
|
-
window.addEventListener("DOMContentLoaded", mountObserver
|
|
6321
|
+
window.addEventListener("DOMContentLoaded", mountObserver);
|
|
6326
6322
|
} else {
|
|
6327
6323
|
mountObserver();
|
|
6328
6324
|
}
|
|
@@ -6333,41 +6329,9 @@ function useCaptchaMonitor(page, options) {
|
|
|
6333
6329
|
}
|
|
6334
6330
|
};
|
|
6335
6331
|
})();
|
|
6336
|
-
};
|
|
6337
|
-
|
|
6338
|
-
selector: domSelector,
|
|
6339
|
-
callbackName: exposedFunctionName,
|
|
6340
|
-
cleanerName
|
|
6341
|
-
};
|
|
6342
|
-
const domMonitorReady = (async () => {
|
|
6343
|
-
await page.exposeFunction(exposedFunctionName, triggerDetected);
|
|
6344
|
-
await page.addInitScript(installDomMonitor, installArgs);
|
|
6345
|
-
await page.evaluate(installDomMonitor, installArgs).catch(() => {
|
|
6346
|
-
});
|
|
6347
|
-
logger12.success("useCaptchaMonitor", `DOM \u76D1\u63A7\u5DF2\u542F\u7528\uFF1A${domSelector}`);
|
|
6348
|
-
})().catch((error) => {
|
|
6349
|
-
if (isStopped) {
|
|
6350
|
-
return;
|
|
6351
|
-
}
|
|
6352
|
-
logger12.warn(`DOM \u76D1\u63A7\u521D\u59CB\u5316\u5931\u8D25 (${domSelector}): ${error?.message || error}`);
|
|
6353
|
-
});
|
|
6354
|
-
domFrameHandler = async (frame) => {
|
|
6355
|
-
if (frame !== page.mainFrame() || isStopped) {
|
|
6356
|
-
return;
|
|
6357
|
-
}
|
|
6358
|
-
await domMonitorReady;
|
|
6359
|
-
if (isStopped) {
|
|
6360
|
-
return;
|
|
6361
|
-
}
|
|
6362
|
-
await page.evaluate(installDomMonitor, installArgs).catch(() => {
|
|
6363
|
-
});
|
|
6364
|
-
};
|
|
6365
|
-
page.on("framenavigated", domFrameHandler);
|
|
6332
|
+
}, { selector: domSelector, callbackName: exposedFunctionName, cleanerName });
|
|
6333
|
+
logger12.success("useCaptchaMonitor", `DOM \u76D1\u63A7\u5DF2\u542F\u7528\uFF1A${domSelector}`);
|
|
6366
6334
|
cleanupFns.push(async () => {
|
|
6367
|
-
if (domFrameHandler) {
|
|
6368
|
-
page.off("framenavigated", domFrameHandler);
|
|
6369
|
-
}
|
|
6370
|
-
await domMonitorReady;
|
|
6371
6335
|
try {
|
|
6372
6336
|
await page.evaluate((name) => {
|
|
6373
6337
|
if (window[name]) {
|
|
@@ -6398,10 +6362,10 @@ function useCaptchaMonitor(page, options) {
|
|
|
6398
6362
|
return {
|
|
6399
6363
|
stop: async () => {
|
|
6400
6364
|
logger12.info("\u6B63\u5728\u505C\u6B62\u9A8C\u8BC1\u7801\u76D1\u63A7...");
|
|
6401
|
-
isStopped = true;
|
|
6402
6365
|
for (const fn of cleanupFns) {
|
|
6403
6366
|
await fn();
|
|
6404
6367
|
}
|
|
6368
|
+
isStopped = true;
|
|
6405
6369
|
}
|
|
6406
6370
|
};
|
|
6407
6371
|
}
|