@skrillex1224/playwright-toolkit 2.1.278 → 2.1.279
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 +84 -115
- package/dist/index.cjs.map +2 -2
- package/dist/index.js +84 -115
- package/dist/index.js.map +2 -2
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -4711,38 +4711,13 @@ var buildActionOptions = (options = {}) => {
|
|
|
4711
4711
|
if (options && options.timeout != null) {
|
|
4712
4712
|
actionOptions.timeout = options.timeout;
|
|
4713
4713
|
}
|
|
4714
|
-
|
|
4715
|
-
actionOptions.force = options.force;
|
|
4716
|
-
}
|
|
4714
|
+
actionOptions.force = true;
|
|
4717
4715
|
const humanConfig = buildTypingHumanConfig(options);
|
|
4718
4716
|
if (humanConfig) {
|
|
4719
4717
|
actionOptions.human_config = humanConfig;
|
|
4720
4718
|
}
|
|
4721
4719
|
return actionOptions;
|
|
4722
4720
|
};
|
|
4723
|
-
var getErrorMessage = (error) => {
|
|
4724
|
-
if (typeof error === "string") return error;
|
|
4725
|
-
if (error && typeof error.message === "string") return error.message;
|
|
4726
|
-
return String(error ?? "");
|
|
4727
|
-
};
|
|
4728
|
-
var isPointerEventsCoveredError = (error) => {
|
|
4729
|
-
const message = getErrorMessage(error).toLowerCase();
|
|
4730
|
-
return message.includes("pointer_events") && (message.includes("covered by") || message.includes("receiving events"));
|
|
4731
|
-
};
|
|
4732
|
-
var withPointerEventsForceFallback = async (label, options, operation) => {
|
|
4733
|
-
try {
|
|
4734
|
-
return await operation(options);
|
|
4735
|
-
} catch (error) {
|
|
4736
|
-
if (options?.force || !isPointerEventsCoveredError(error)) {
|
|
4737
|
-
throw error;
|
|
4738
|
-
}
|
|
4739
|
-
logger7.warn(`${label}: cloakbrowser pointer_events check failed, retrying with force=true (${getErrorMessage(error)})`);
|
|
4740
|
-
return await operation({
|
|
4741
|
-
...options || {},
|
|
4742
|
-
force: true
|
|
4743
|
-
});
|
|
4744
|
-
}
|
|
4745
|
-
};
|
|
4746
4721
|
var ensureDesktopHumanized = async (page) => {
|
|
4747
4722
|
if (!page || typeof page !== "object") {
|
|
4748
4723
|
throw new Error("Humanize requires a Playwright page");
|
|
@@ -4820,55 +4795,53 @@ var humanMoveToPoint = async (page, point) => {
|
|
|
4820
4795
|
};
|
|
4821
4796
|
var doDesktopHumanClick = async (page, target, options = {}) => {
|
|
4822
4797
|
await ensureDesktopHumanized(page);
|
|
4823
|
-
|
|
4824
|
-
|
|
4825
|
-
|
|
4826
|
-
|
|
4798
|
+
if (target == null) {
|
|
4799
|
+
const cursor = page._humanCursor || { x: 0, y: 0 };
|
|
4800
|
+
await page.mouse.click(cursor.x || 0, cursor.y || 0);
|
|
4801
|
+
return true;
|
|
4802
|
+
}
|
|
4803
|
+
if (isPoint2(target)) {
|
|
4804
|
+
return humanMoveToPoint(page, target).then(async () => {
|
|
4805
|
+
await page.mouse.click(Number(target.x), Number(target.y));
|
|
4827
4806
|
return true;
|
|
4828
|
-
}
|
|
4829
|
-
|
|
4830
|
-
|
|
4831
|
-
|
|
4832
|
-
|
|
4833
|
-
|
|
4834
|
-
|
|
4835
|
-
|
|
4836
|
-
if (typeof target === "string") {
|
|
4837
|
-
if (!throwOnMissing) {
|
|
4838
|
-
const existingHandle = await page.$(target);
|
|
4839
|
-
if (!existingHandle) {
|
|
4840
|
-
return false;
|
|
4841
|
-
}
|
|
4842
|
-
await existingHandle.click(buildActionOptions(effectiveOptions));
|
|
4843
|
-
return true;
|
|
4807
|
+
});
|
|
4808
|
+
}
|
|
4809
|
+
const throwOnMissing = options.throwOnMissing !== false;
|
|
4810
|
+
if (typeof target === "string") {
|
|
4811
|
+
if (!throwOnMissing) {
|
|
4812
|
+
const existingHandle = await page.$(target);
|
|
4813
|
+
if (!existingHandle) {
|
|
4814
|
+
return false;
|
|
4844
4815
|
}
|
|
4845
|
-
await
|
|
4816
|
+
await existingHandle.click(buildActionOptions(options));
|
|
4846
4817
|
return true;
|
|
4847
4818
|
}
|
|
4848
|
-
|
|
4849
|
-
|
|
4850
|
-
|
|
4851
|
-
|
|
4852
|
-
|
|
4853
|
-
|
|
4854
|
-
|
|
4855
|
-
|
|
4856
|
-
|
|
4857
|
-
|
|
4858
|
-
if (!box) {
|
|
4859
|
-
if (throwOnMissing) {
|
|
4860
|
-
throw new Error("\u65E0\u6CD5\u83B7\u53D6\u5143\u7D20\u4F4D\u7F6E");
|
|
4861
|
-
}
|
|
4862
|
-
return false;
|
|
4863
|
-
}
|
|
4864
|
-
await page.mouse.click(box.x + box.width / 2, box.y + box.height / 2);
|
|
4819
|
+
await page.click(target, buildActionOptions(options));
|
|
4820
|
+
return true;
|
|
4821
|
+
}
|
|
4822
|
+
const { target: resolvedTarget, dispose } = await resolvePatchedTarget(page, target, { throwOnMissing });
|
|
4823
|
+
try {
|
|
4824
|
+
if (!resolvedTarget) {
|
|
4825
|
+
return false;
|
|
4826
|
+
}
|
|
4827
|
+
if (typeof resolvedTarget.click === "function") {
|
|
4828
|
+
await resolvedTarget.click(buildActionOptions(options));
|
|
4865
4829
|
return true;
|
|
4866
|
-
}
|
|
4867
|
-
|
|
4868
|
-
|
|
4830
|
+
}
|
|
4831
|
+
const box = await resolvedTarget.boundingBox?.();
|
|
4832
|
+
if (!box) {
|
|
4833
|
+
if (throwOnMissing) {
|
|
4834
|
+
throw new Error("\u65E0\u6CD5\u83B7\u53D6\u5143\u7D20\u4F4D\u7F6E");
|
|
4869
4835
|
}
|
|
4836
|
+
return false;
|
|
4870
4837
|
}
|
|
4871
|
-
|
|
4838
|
+
await page.mouse.click(box.x + box.width / 2, box.y + box.height / 2);
|
|
4839
|
+
return true;
|
|
4840
|
+
} finally {
|
|
4841
|
+
if (typeof dispose === "function") {
|
|
4842
|
+
await dispose();
|
|
4843
|
+
}
|
|
4844
|
+
}
|
|
4872
4845
|
};
|
|
4873
4846
|
var CloakBrowserHumanize = {
|
|
4874
4847
|
jitterMs(base, jitterPercent = 0.3) {
|
|
@@ -4895,7 +4868,7 @@ var CloakBrowserHumanize = {
|
|
|
4895
4868
|
return false;
|
|
4896
4869
|
}
|
|
4897
4870
|
if (typeof resolvedTarget.hover === "function") {
|
|
4898
|
-
await resolvedTarget.hover();
|
|
4871
|
+
await resolvedTarget.hover({ force: true });
|
|
4899
4872
|
return true;
|
|
4900
4873
|
}
|
|
4901
4874
|
const box = await resolvedTarget.boundingBox?.();
|
|
@@ -4997,24 +4970,22 @@ var CloakBrowserHumanize = {
|
|
|
4997
4970
|
return await MobileHumanize.humanType(page, selector, text, options);
|
|
4998
4971
|
}
|
|
4999
4972
|
await ensureDesktopHumanized(page);
|
|
5000
|
-
|
|
5001
|
-
|
|
5002
|
-
|
|
5003
|
-
|
|
5004
|
-
|
|
4973
|
+
const actionOptions = buildActionOptions(options);
|
|
4974
|
+
if (typeof selector === "string") {
|
|
4975
|
+
await page.type(selector, text, actionOptions);
|
|
4976
|
+
return;
|
|
4977
|
+
}
|
|
4978
|
+
const { target: resolvedTarget, dispose } = await resolvePatchedTarget(page, selector, { throwOnMissing: true });
|
|
4979
|
+
try {
|
|
4980
|
+
if (!resolvedTarget || typeof resolvedTarget.type !== "function") {
|
|
4981
|
+
throw new Error("\u76EE\u6807\u5143\u7D20\u4E0D\u652F\u6301 type()");
|
|
5005
4982
|
}
|
|
5006
|
-
|
|
5007
|
-
|
|
5008
|
-
|
|
5009
|
-
|
|
5010
|
-
}
|
|
5011
|
-
await resolvedTarget.type(text, actionOptions);
|
|
5012
|
-
} finally {
|
|
5013
|
-
if (typeof dispose === "function") {
|
|
5014
|
-
await dispose();
|
|
5015
|
-
}
|
|
4983
|
+
await resolvedTarget.type(text, actionOptions);
|
|
4984
|
+
} finally {
|
|
4985
|
+
if (typeof dispose === "function") {
|
|
4986
|
+
await dispose();
|
|
5016
4987
|
}
|
|
5017
|
-
}
|
|
4988
|
+
}
|
|
5018
4989
|
},
|
|
5019
4990
|
async humanPress(page, targetOrKey, maybeKey, options = {}) {
|
|
5020
4991
|
if (isMobilePage(page)) {
|
|
@@ -5032,38 +5003,36 @@ var CloakBrowserHumanize = {
|
|
|
5032
5003
|
});
|
|
5033
5004
|
return true;
|
|
5034
5005
|
}
|
|
5035
|
-
|
|
5036
|
-
|
|
5037
|
-
|
|
5006
|
+
if (typeof targetOrKey === "string") {
|
|
5007
|
+
await page.press(targetOrKey, key, buildActionOptions(pressOptions));
|
|
5008
|
+
return true;
|
|
5009
|
+
}
|
|
5010
|
+
const { target: resolvedTarget, dispose } = await resolvePatchedTarget(page, targetOrKey, {
|
|
5011
|
+
throwOnMissing: pressOptions.throwOnMissing !== false
|
|
5012
|
+
});
|
|
5013
|
+
try {
|
|
5014
|
+
if (!resolvedTarget) {
|
|
5015
|
+
return false;
|
|
5016
|
+
}
|
|
5017
|
+
if (typeof resolvedTarget.press === "function") {
|
|
5018
|
+
await resolvedTarget.press(key, buildActionOptions(pressOptions));
|
|
5038
5019
|
return true;
|
|
5039
5020
|
}
|
|
5040
|
-
|
|
5041
|
-
|
|
5021
|
+
await doDesktopHumanClick(page, targetOrKey, {
|
|
5022
|
+
...pressOptions,
|
|
5023
|
+
reactionDelay: pressOptions.focusDelay ?? 180
|
|
5042
5024
|
});
|
|
5043
|
-
|
|
5044
|
-
|
|
5045
|
-
|
|
5046
|
-
|
|
5047
|
-
|
|
5048
|
-
|
|
5049
|
-
|
|
5050
|
-
|
|
5051
|
-
await
|
|
5052
|
-
...effectiveOptions,
|
|
5053
|
-
reactionDelay: effectiveOptions.focusDelay ?? 180
|
|
5054
|
-
});
|
|
5055
|
-
await jitterSleep(effectiveOptions.reactionDelay ?? 180, 0.45);
|
|
5056
|
-
await page.keyboard.press(key, {
|
|
5057
|
-
...effectiveOptions.keyboardOptions || {},
|
|
5058
|
-
delay: jitterMs(effectiveOptions.holdDelay ?? 45, 0.5)
|
|
5059
|
-
});
|
|
5060
|
-
return true;
|
|
5061
|
-
} finally {
|
|
5062
|
-
if (typeof dispose === "function") {
|
|
5063
|
-
await dispose();
|
|
5064
|
-
}
|
|
5025
|
+
await jitterSleep(pressOptions.reactionDelay ?? 180, 0.45);
|
|
5026
|
+
await page.keyboard.press(key, {
|
|
5027
|
+
...pressOptions.keyboardOptions || {},
|
|
5028
|
+
delay: jitterMs(pressOptions.holdDelay ?? 45, 0.5)
|
|
5029
|
+
});
|
|
5030
|
+
return true;
|
|
5031
|
+
} finally {
|
|
5032
|
+
if (typeof dispose === "function") {
|
|
5033
|
+
await dispose();
|
|
5065
5034
|
}
|
|
5066
|
-
}
|
|
5035
|
+
}
|
|
5067
5036
|
},
|
|
5068
5037
|
async humanClear(page, selector) {
|
|
5069
5038
|
if (isMobilePage(page)) {
|
|
@@ -5071,10 +5040,10 @@ var CloakBrowserHumanize = {
|
|
|
5071
5040
|
}
|
|
5072
5041
|
await ensureDesktopHumanized(page);
|
|
5073
5042
|
if (typeof page.clear === "function") {
|
|
5074
|
-
await page.clear(selector);
|
|
5043
|
+
await page.clear(selector, { force: true });
|
|
5075
5044
|
return;
|
|
5076
5045
|
}
|
|
5077
|
-
await page.fill(selector, "");
|
|
5046
|
+
await page.fill(selector, "", { force: true });
|
|
5078
5047
|
},
|
|
5079
5048
|
async warmUpBrowsing(page, baseDuration = 3500) {
|
|
5080
5049
|
if (isMobilePage(page)) {
|