@skrillex1224/playwright-toolkit 3.0.5 → 3.0.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/dist/index.cjs +45 -9
- package/dist/index.cjs.map +2 -2
- package/dist/index.js +45 -9
- 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 domFrameHandler = null;
|
|
6279
6279
|
const triggerDetected = async () => {
|
|
6280
6280
|
if (isStopped || isHandling) return;
|
|
6281
6281
|
isHandling = true;
|
|
@@ -6287,12 +6287,16 @@ function useCaptchaMonitor(page, options) {
|
|
|
6287
6287
|
};
|
|
6288
6288
|
const cleanupFns = [];
|
|
6289
6289
|
if (domSelector) {
|
|
6290
|
-
exposedFunctionName = `__c_d_${uuidv4().replace(/-/g, "_")}`;
|
|
6290
|
+
const exposedFunctionName = `__c_d_${uuidv4().replace(/-/g, "_")}`;
|
|
6291
6291
|
const cleanerName = `__c_cleaner_${uuidv4().replace(/-/g, "_")}`;
|
|
6292
|
-
|
|
6293
|
-
});
|
|
6294
|
-
page.addInitScript(({ selector, callbackName, cleanerName: cleanupName }) => {
|
|
6292
|
+
const installDomMonitor = ({ selector, callbackName, cleanerName: cleanupName }) => {
|
|
6295
6293
|
(() => {
|
|
6294
|
+
if (typeof window[cleanupName] === "function") {
|
|
6295
|
+
try {
|
|
6296
|
+
window[cleanupName]();
|
|
6297
|
+
} catch {
|
|
6298
|
+
}
|
|
6299
|
+
}
|
|
6296
6300
|
let observer = null;
|
|
6297
6301
|
const checkAndReport = () => {
|
|
6298
6302
|
const element = document.querySelector(selector);
|
|
@@ -6318,7 +6322,7 @@ function useCaptchaMonitor(page, options) {
|
|
|
6318
6322
|
}
|
|
6319
6323
|
};
|
|
6320
6324
|
if (document.readyState === "loading") {
|
|
6321
|
-
window.addEventListener("DOMContentLoaded", mountObserver);
|
|
6325
|
+
window.addEventListener("DOMContentLoaded", mountObserver, { once: true });
|
|
6322
6326
|
} else {
|
|
6323
6327
|
mountObserver();
|
|
6324
6328
|
}
|
|
@@ -6329,9 +6333,41 @@ function useCaptchaMonitor(page, options) {
|
|
|
6329
6333
|
}
|
|
6330
6334
|
};
|
|
6331
6335
|
})();
|
|
6332
|
-
}
|
|
6333
|
-
|
|
6336
|
+
};
|
|
6337
|
+
const installArgs = {
|
|
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);
|
|
6334
6366
|
cleanupFns.push(async () => {
|
|
6367
|
+
if (domFrameHandler) {
|
|
6368
|
+
page.off("framenavigated", domFrameHandler);
|
|
6369
|
+
}
|
|
6370
|
+
await domMonitorReady;
|
|
6335
6371
|
try {
|
|
6336
6372
|
await page.evaluate((name) => {
|
|
6337
6373
|
if (window[name]) {
|
|
@@ -6362,10 +6398,10 @@ function useCaptchaMonitor(page, options) {
|
|
|
6362
6398
|
return {
|
|
6363
6399
|
stop: async () => {
|
|
6364
6400
|
logger12.info("\u6B63\u5728\u505C\u6B62\u9A8C\u8BC1\u7801\u76D1\u63A7...");
|
|
6401
|
+
isStopped = true;
|
|
6365
6402
|
for (const fn of cleanupFns) {
|
|
6366
6403
|
await fn();
|
|
6367
6404
|
}
|
|
6368
|
-
isStopped = true;
|
|
6369
6405
|
}
|
|
6370
6406
|
};
|
|
6371
6407
|
}
|