@skrillex1224/playwright-toolkit 2.1.280 → 2.1.281
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 +136 -215
- package/dist/index.cjs.map +3 -3
- package/dist/index.js +136 -215
- package/dist/index.js.map +3 -3
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -4731,143 +4731,91 @@ var DefaultHumanize = {
|
|
|
4731
4731
|
|
|
4732
4732
|
// src/internals/humanize/cloakbrowser.js
|
|
4733
4733
|
var import_delay4 = __toESM(require("delay"), 1);
|
|
4734
|
-
var isPageLike2 = (value) => value && typeof value === "object" && typeof value.evaluate === "function";
|
|
4735
|
-
var isPoint2 = (value) => value && typeof value === "object" && Number.isFinite(Number(value.x)) && Number.isFinite(Number(value.y));
|
|
4736
4734
|
var resolveDeviceFromPage3 = (page) => normalizeDevice(page?.[PageRuntimeStateKey]?.device);
|
|
4737
4735
|
var isMobilePage = (page) => resolveDeviceFromPage3(page) === Device.Mobile;
|
|
4736
|
+
var isPageLike2 = (value) => value && typeof value === "object" && typeof value.evaluate === "function";
|
|
4737
|
+
var isPoint2 = (value) => value && typeof value === "object" && Number.isFinite(Number(value.x)) && Number.isFinite(Number(value.y));
|
|
4738
4738
|
var resolveNativeTarget2 = (page, target) => typeof target === "string" ? page.locator(target).first() : target;
|
|
4739
|
-
var
|
|
4740
|
-
|
|
4741
|
-
|
|
4742
|
-
|
|
4743
|
-
|
|
4744
|
-
|
|
4745
|
-
return count > 0;
|
|
4746
|
-
}
|
|
4747
|
-
if (typeof target.elementHandle === "function") {
|
|
4748
|
-
const handle = await target.elementHandle().catch(() => null);
|
|
4749
|
-
try {
|
|
4750
|
-
return Boolean(handle);
|
|
4751
|
-
} finally {
|
|
4752
|
-
await handle?.dispose?.().catch(() => {
|
|
4753
|
-
});
|
|
4754
|
-
}
|
|
4755
|
-
}
|
|
4756
|
-
return true;
|
|
4739
|
+
var getViewportCenter = (page) => {
|
|
4740
|
+
const viewport = page?.viewportSize?.() || { width: 1365, height: 900 };
|
|
4741
|
+
return {
|
|
4742
|
+
x: Math.round(viewport.width / 2),
|
|
4743
|
+
y: Math.round(viewport.height / 2)
|
|
4744
|
+
};
|
|
4757
4745
|
};
|
|
4758
|
-
var
|
|
4759
|
-
|
|
4746
|
+
var readViewportScroll = async (page) => await page.evaluate(() => ({ x: window.scrollX, y: window.scrollY })).catch(() => ({ x: 0, y: 0 }));
|
|
4747
|
+
var getTargetBox = async (target) => {
|
|
4748
|
+
if (!target || typeof target.boundingBox !== "function") {
|
|
4760
4749
|
return null;
|
|
4761
4750
|
}
|
|
4762
|
-
|
|
4763
|
-
return await target.boundingBox().catch(() => null);
|
|
4764
|
-
}
|
|
4765
|
-
if (typeof target.elementHandle === "function") {
|
|
4766
|
-
const handle = await target.elementHandle().catch(() => null);
|
|
4767
|
-
try {
|
|
4768
|
-
return await handle?.boundingBox?.().catch(() => null);
|
|
4769
|
-
} finally {
|
|
4770
|
-
await handle?.dispose?.().catch(() => {
|
|
4771
|
-
});
|
|
4772
|
-
}
|
|
4773
|
-
}
|
|
4774
|
-
return null;
|
|
4751
|
+
return await target.boundingBox().catch(() => null);
|
|
4775
4752
|
};
|
|
4776
|
-
var
|
|
4777
|
-
|
|
4778
|
-
|
|
4779
|
-
}
|
|
4780
|
-
|
|
4781
|
-
|
|
4782
|
-
return resolvedTarget;
|
|
4753
|
+
var clickOptionsFrom = (options = {}) => {
|
|
4754
|
+
const nextOptions = {
|
|
4755
|
+
force: true
|
|
4756
|
+
};
|
|
4757
|
+
if (options.timeout != null) {
|
|
4758
|
+
nextOptions.timeout = options.timeout;
|
|
4783
4759
|
}
|
|
4784
|
-
return
|
|
4785
|
-
};
|
|
4786
|
-
var readViewportScroll = async (page) => {
|
|
4787
|
-
return await page.evaluate(() => ({ x: window.scrollX, y: window.scrollY })).catch(() => ({ x: 0, y: 0 }));
|
|
4760
|
+
return nextOptions;
|
|
4788
4761
|
};
|
|
4789
|
-
var
|
|
4790
|
-
const
|
|
4791
|
-
if (
|
|
4792
|
-
|
|
4762
|
+
var typeOptionsFrom = (options = {}) => {
|
|
4763
|
+
const nextOptions = {};
|
|
4764
|
+
if (options.timeout != null) {
|
|
4765
|
+
nextOptions.timeout = options.timeout;
|
|
4793
4766
|
}
|
|
4794
|
-
if (
|
|
4795
|
-
|
|
4796
|
-
}
|
|
4797
|
-
if (Number.isFinite(Number(options.pauseBase))) {
|
|
4798
|
-
const basePause = Math.max(40, Number(options.pauseBase));
|
|
4799
|
-
humanConfig.typing_pause_range = [
|
|
4800
|
-
Math.round(basePause * 0.5),
|
|
4801
|
-
Math.round(basePause * 1.5)
|
|
4802
|
-
];
|
|
4767
|
+
if (options.baseDelay != null) {
|
|
4768
|
+
nextOptions.delay = Math.max(0, Number(options.baseDelay) || 0);
|
|
4803
4769
|
}
|
|
4804
|
-
return
|
|
4770
|
+
return nextOptions;
|
|
4805
4771
|
};
|
|
4806
|
-
var
|
|
4807
|
-
const
|
|
4808
|
-
|
|
4809
|
-
|
|
4810
|
-
if (options && options.timeout != null) {
|
|
4811
|
-
actionOptions.timeout = options.timeout;
|
|
4772
|
+
var pressOptionsFrom = (options = {}) => {
|
|
4773
|
+
const nextOptions = {};
|
|
4774
|
+
if (options.timeout != null) {
|
|
4775
|
+
nextOptions.timeout = options.timeout;
|
|
4812
4776
|
}
|
|
4813
|
-
|
|
4814
|
-
|
|
4815
|
-
actionOptions.human_config = humanConfig;
|
|
4777
|
+
if (options.holdDelay != null) {
|
|
4778
|
+
nextOptions.delay = Math.max(0, Number(options.holdDelay) || 0);
|
|
4816
4779
|
}
|
|
4817
|
-
return
|
|
4780
|
+
return nextOptions;
|
|
4818
4781
|
};
|
|
4819
|
-
var
|
|
4782
|
+
var waitDesktopJitter = async (baseMs, jitterPercent = 0.3) => {
|
|
4820
4783
|
await (0, import_delay4.default)(jitterMs(baseMs, jitterPercent));
|
|
4821
4784
|
};
|
|
4822
|
-
var
|
|
4823
|
-
await page.mouse.move(Number(point.x), Number(point.y));
|
|
4824
|
-
return true;
|
|
4825
|
-
};
|
|
4826
|
-
var CloakBrowserHumanize = {
|
|
4785
|
+
var DesktopCloakHumanize = {
|
|
4827
4786
|
jitterMs(base, jitterPercent = 0.3) {
|
|
4828
4787
|
return jitterMs(base, jitterPercent);
|
|
4829
4788
|
},
|
|
4830
4789
|
async initializeCursor(page) {
|
|
4831
|
-
if (isMobilePage(page)) {
|
|
4832
|
-
return await MobileHumanize.initializeCursor(page);
|
|
4833
|
-
}
|
|
4834
4790
|
return Boolean(page);
|
|
4835
4791
|
},
|
|
4836
4792
|
async humanMove(page, target) {
|
|
4837
|
-
if (
|
|
4838
|
-
return
|
|
4793
|
+
if (target == null) {
|
|
4794
|
+
return false;
|
|
4839
4795
|
}
|
|
4840
4796
|
if (isPoint2(target)) {
|
|
4841
|
-
|
|
4842
|
-
|
|
4843
|
-
const resolvedTarget = await resolveActionTarget(page, target, { throwOnMissing: false });
|
|
4844
|
-
if (!resolvedTarget) {
|
|
4845
|
-
return false;
|
|
4797
|
+
await page.mouse.move(Number(target.x), Number(target.y));
|
|
4798
|
+
return true;
|
|
4846
4799
|
}
|
|
4847
|
-
|
|
4848
|
-
|
|
4800
|
+
const resolvedTarget = resolveNativeTarget2(page, target);
|
|
4801
|
+
if (typeof resolvedTarget?.hover === "function") {
|
|
4802
|
+
await resolvedTarget.hover(clickOptionsFrom());
|
|
4849
4803
|
return true;
|
|
4850
4804
|
}
|
|
4851
|
-
const box = await
|
|
4805
|
+
const box = await getTargetBox(resolvedTarget);
|
|
4852
4806
|
if (!box) {
|
|
4853
4807
|
return false;
|
|
4854
4808
|
}
|
|
4855
|
-
|
|
4856
|
-
|
|
4857
|
-
y: box.y + box.height / 2
|
|
4858
|
-
});
|
|
4809
|
+
await page.mouse.move(box.x + box.width / 2, box.y + box.height / 2);
|
|
4810
|
+
return true;
|
|
4859
4811
|
},
|
|
4860
|
-
async humanScroll(page, target
|
|
4861
|
-
|
|
4862
|
-
return await MobileHumanize.humanScroll(page, target, options);
|
|
4863
|
-
}
|
|
4864
|
-
const resolvedTarget = await resolveActionTarget(page, target, { throwOnMissing: false });
|
|
4812
|
+
async humanScroll(page, target) {
|
|
4813
|
+
const resolvedTarget = resolveNativeTarget2(page, target);
|
|
4865
4814
|
if (!resolvedTarget) {
|
|
4866
4815
|
return { element: null, didScroll: false, restore: null };
|
|
4867
4816
|
}
|
|
4868
4817
|
const before = await readViewportScroll(page);
|
|
4869
|
-
await resolvedTarget.scrollIntoViewIfNeeded?.()
|
|
4870
|
-
});
|
|
4818
|
+
await resolvedTarget.scrollIntoViewIfNeeded?.();
|
|
4871
4819
|
const after = await readViewportScroll(page);
|
|
4872
4820
|
return {
|
|
4873
4821
|
element: resolvedTarget,
|
|
@@ -4876,183 +4824,156 @@ var CloakBrowserHumanize = {
|
|
|
4876
4824
|
};
|
|
4877
4825
|
},
|
|
4878
4826
|
async humanClick(page, target, options = {}) {
|
|
4879
|
-
if (isMobilePage(page)) {
|
|
4880
|
-
return await MobileHumanize.humanClick(page, target, options);
|
|
4881
|
-
}
|
|
4882
4827
|
if (target == null) {
|
|
4883
|
-
const
|
|
4884
|
-
await page.mouse.click(x
|
|
4828
|
+
const center = getViewportCenter(page);
|
|
4829
|
+
await page.mouse.click(center.x, center.y);
|
|
4885
4830
|
return true;
|
|
4886
4831
|
}
|
|
4887
4832
|
if (isPoint2(target)) {
|
|
4888
4833
|
await page.mouse.click(Number(target.x), Number(target.y));
|
|
4889
4834
|
return true;
|
|
4890
4835
|
}
|
|
4891
|
-
|
|
4892
|
-
|
|
4893
|
-
|
|
4894
|
-
if (!resolvedTarget) {
|
|
4895
|
-
return false;
|
|
4836
|
+
if (typeof target === "string") {
|
|
4837
|
+
await page.click(target, clickOptionsFrom(options));
|
|
4838
|
+
return true;
|
|
4896
4839
|
}
|
|
4897
|
-
if (typeof
|
|
4898
|
-
await
|
|
4840
|
+
if (typeof target?.click === "function") {
|
|
4841
|
+
await target.click(clickOptionsFrom(options));
|
|
4899
4842
|
return true;
|
|
4900
4843
|
}
|
|
4901
|
-
const box = await
|
|
4844
|
+
const box = await getTargetBox(target);
|
|
4902
4845
|
if (!box) {
|
|
4903
|
-
if (options.throwOnMissing !== false) {
|
|
4904
|
-
throw new Error("\u65E0\u6CD5\u83B7\u53D6\u5143\u7D20\u4F4D\u7F6E");
|
|
4905
|
-
}
|
|
4906
4846
|
return false;
|
|
4907
4847
|
}
|
|
4908
4848
|
await page.mouse.click(box.x + box.width / 2, box.y + box.height / 2);
|
|
4909
4849
|
return true;
|
|
4910
4850
|
},
|
|
4911
|
-
async randomSleep(
|
|
4912
|
-
|
|
4913
|
-
if (isMobilePage(pageOrBaseMs)) {
|
|
4914
|
-
return await MobileHumanize.randomSleep(maybeBaseMs, maybeJitterPercent);
|
|
4915
|
-
}
|
|
4916
|
-
await jitterSleep(maybeBaseMs, maybeJitterPercent ?? 0.3);
|
|
4917
|
-
return;
|
|
4918
|
-
}
|
|
4919
|
-
await jitterSleep(pageOrBaseMs, maybeBaseMs ?? 0.3);
|
|
4851
|
+
async randomSleep(baseMs, jitterPercent = 0.3) {
|
|
4852
|
+
await waitDesktopJitter(baseMs, jitterPercent);
|
|
4920
4853
|
},
|
|
4921
4854
|
async simulateGaze(page, baseDurationMs = 2500) {
|
|
4922
|
-
if (isMobilePage(page)) {
|
|
4923
|
-
return await MobileHumanize.simulateGaze(page, baseDurationMs);
|
|
4924
|
-
}
|
|
4925
4855
|
const durationMs = jitterMs(baseDurationMs, 0.4);
|
|
4926
|
-
const
|
|
4927
|
-
const
|
|
4928
|
-
while (Date.now() -
|
|
4856
|
+
const startedAt = Date.now();
|
|
4857
|
+
const viewport = page.viewportSize() || { width: 1365, height: 900 };
|
|
4858
|
+
while (Date.now() - startedAt < durationMs) {
|
|
4929
4859
|
await page.mouse.move(
|
|
4930
|
-
100 + Math.random() * Math.max(120,
|
|
4931
|
-
100 + Math.random() * Math.max(120,
|
|
4860
|
+
100 + Math.random() * Math.max(120, viewport.width - 200),
|
|
4861
|
+
100 + Math.random() * Math.max(120, viewport.height - 200)
|
|
4932
4862
|
);
|
|
4933
|
-
await
|
|
4863
|
+
await waitDesktopJitter(600, 0.5);
|
|
4934
4864
|
}
|
|
4935
4865
|
},
|
|
4936
4866
|
async humanType(page, selector, text, options = {}) {
|
|
4937
|
-
if (isMobilePage(page)) {
|
|
4938
|
-
return await MobileHumanize.humanType(page, selector, text, options);
|
|
4939
|
-
}
|
|
4940
|
-
const actionOptions = buildActionOptions(options);
|
|
4941
4867
|
if (typeof selector === "string") {
|
|
4942
|
-
await page.type(selector, text,
|
|
4868
|
+
await page.type(selector, text, typeOptionsFrom(options));
|
|
4943
4869
|
return;
|
|
4944
4870
|
}
|
|
4945
|
-
|
|
4946
|
-
if (!resolvedTarget || typeof resolvedTarget.type !== "function") {
|
|
4947
|
-
throw new Error("\u76EE\u6807\u5143\u7D20\u4E0D\u652F\u6301 type()");
|
|
4948
|
-
}
|
|
4949
|
-
await resolvedTarget.type(text, actionOptions);
|
|
4871
|
+
await selector.type(text, typeOptionsFrom(options));
|
|
4950
4872
|
},
|
|
4951
4873
|
async humanPress(page, targetOrKey, maybeKey, options = {}) {
|
|
4952
|
-
if (isMobilePage(page)) {
|
|
4953
|
-
return await MobileHumanize.humanPress(page, targetOrKey, maybeKey, options);
|
|
4954
|
-
}
|
|
4955
4874
|
const hasTarget = typeof maybeKey === "string";
|
|
4956
4875
|
const key = hasTarget ? maybeKey : targetOrKey;
|
|
4957
4876
|
const pressOptions = hasTarget ? options : maybeKey || options;
|
|
4958
4877
|
if (!hasTarget) {
|
|
4959
|
-
await
|
|
4960
|
-
await page.keyboard.press(key, {
|
|
4961
|
-
...pressOptions.keyboardOptions || {},
|
|
4962
|
-
delay: jitterMs(pressOptions.holdDelay ?? 45, 0.5)
|
|
4963
|
-
});
|
|
4878
|
+
await page.keyboard.press(key, pressOptionsFrom(pressOptions));
|
|
4964
4879
|
return true;
|
|
4965
4880
|
}
|
|
4966
4881
|
if (typeof targetOrKey === "string") {
|
|
4967
|
-
await page.press(targetOrKey, key,
|
|
4882
|
+
await page.press(targetOrKey, key, pressOptionsFrom(pressOptions));
|
|
4968
4883
|
return true;
|
|
4969
4884
|
}
|
|
4970
|
-
|
|
4971
|
-
|
|
4972
|
-
});
|
|
4973
|
-
if (!resolvedTarget) {
|
|
4974
|
-
return false;
|
|
4975
|
-
}
|
|
4976
|
-
if (typeof resolvedTarget.press === "function") {
|
|
4977
|
-
await resolvedTarget.press(key, buildActionOptions(pressOptions));
|
|
4885
|
+
if (typeof targetOrKey?.press === "function") {
|
|
4886
|
+
await targetOrKey.press(key, pressOptionsFrom(pressOptions));
|
|
4978
4887
|
return true;
|
|
4979
4888
|
}
|
|
4980
|
-
await
|
|
4981
|
-
...pressOptions,
|
|
4982
|
-
reactionDelay: pressOptions.focusDelay ?? 180
|
|
4983
|
-
});
|
|
4984
|
-
await jitterSleep(pressOptions.reactionDelay ?? 180, 0.45);
|
|
4985
|
-
await page.keyboard.press(key, {
|
|
4986
|
-
...pressOptions.keyboardOptions || {},
|
|
4987
|
-
delay: jitterMs(pressOptions.holdDelay ?? 45, 0.5)
|
|
4988
|
-
});
|
|
4889
|
+
await page.keyboard.press(key, pressOptionsFrom(pressOptions));
|
|
4989
4890
|
return true;
|
|
4990
4891
|
},
|
|
4991
4892
|
async humanClear(page, selector) {
|
|
4992
|
-
if (isMobilePage(page)) {
|
|
4993
|
-
return await MobileHumanize.humanClear(page, selector);
|
|
4994
|
-
}
|
|
4995
4893
|
if (typeof selector === "string") {
|
|
4996
4894
|
if (typeof page.clear === "function") {
|
|
4997
|
-
await page.clear(selector,
|
|
4895
|
+
await page.clear(selector, clickOptionsFrom());
|
|
4998
4896
|
return;
|
|
4999
4897
|
}
|
|
5000
|
-
await page.fill(selector, "",
|
|
4898
|
+
await page.fill(selector, "", clickOptionsFrom());
|
|
5001
4899
|
return;
|
|
5002
4900
|
}
|
|
5003
|
-
|
|
5004
|
-
|
|
5005
|
-
throw new Error("\u76EE\u6807\u5143\u7D20\u4E0D\u652F\u6301 clear()");
|
|
5006
|
-
}
|
|
5007
|
-
if (typeof resolvedTarget.clear === "function") {
|
|
5008
|
-
await resolvedTarget.clear(buildActionOptions());
|
|
4901
|
+
if (typeof selector?.clear === "function") {
|
|
4902
|
+
await selector.clear(clickOptionsFrom());
|
|
5009
4903
|
return;
|
|
5010
4904
|
}
|
|
5011
|
-
if (typeof
|
|
5012
|
-
await
|
|
4905
|
+
if (typeof selector?.fill === "function") {
|
|
4906
|
+
await selector.fill("", clickOptionsFrom());
|
|
5013
4907
|
return;
|
|
5014
4908
|
}
|
|
5015
|
-
throw new Error("\u76EE\u6807\u5143\u7D20\u4E0D\u652F\u6301 clear()");
|
|
5016
4909
|
},
|
|
5017
4910
|
async warmUpBrowsing(page, baseDuration = 3500) {
|
|
5018
|
-
if (isMobilePage(page)) {
|
|
5019
|
-
return await MobileHumanize.warmUpBrowsing(page, baseDuration);
|
|
5020
|
-
}
|
|
5021
4911
|
const durationMs = jitterMs(baseDuration, 0.4);
|
|
5022
|
-
const
|
|
5023
|
-
|
|
5024
|
-
|
|
5025
|
-
|
|
5026
|
-
|
|
5027
|
-
await page.mouse.move(
|
|
5028
|
-
100 + Math.random() * Math.max(120, viewportSize.width - 200),
|
|
5029
|
-
100 + Math.random() * Math.max(120, viewportSize.height - 200)
|
|
5030
|
-
);
|
|
5031
|
-
await jitterSleep(350, 0.4);
|
|
5032
|
-
continue;
|
|
5033
|
-
}
|
|
5034
|
-
if (action < 0.7) {
|
|
5035
|
-
await page.mouse.wheel(0, (Math.random() - 0.5) * 220);
|
|
5036
|
-
await jitterSleep(500, 0.4);
|
|
5037
|
-
continue;
|
|
5038
|
-
}
|
|
5039
|
-
await jitterSleep(800, 0.5);
|
|
4912
|
+
const startedAt = Date.now();
|
|
4913
|
+
while (Date.now() - startedAt < durationMs) {
|
|
4914
|
+
await this.simulateGaze(page, 240);
|
|
4915
|
+
await this.naturalScroll(page, Math.random() > 0.4 ? "down" : "up", 160, 3);
|
|
4916
|
+
await waitDesktopJitter(250, 0.35);
|
|
5040
4917
|
}
|
|
5041
4918
|
},
|
|
5042
4919
|
async naturalScroll(page, direction = "down", distance = 300, baseSteps = 5) {
|
|
5043
|
-
|
|
5044
|
-
|
|
5045
|
-
}
|
|
5046
|
-
const steps = Math.max(3, baseSteps + Math.floor(Math.random() * 3) - 1);
|
|
5047
|
-
const actualDistance = jitterMs(distance, 0.15);
|
|
4920
|
+
const steps = Math.max(1, Number(baseSteps) || 1);
|
|
4921
|
+
const stepDistance = (Number(distance) || 0) / steps;
|
|
5048
4922
|
const sign = direction === "down" ? 1 : -1;
|
|
5049
|
-
const stepDistance = actualDistance / steps;
|
|
5050
4923
|
for (let index = 0; index < steps; index += 1) {
|
|
5051
|
-
|
|
5052
|
-
|
|
5053
|
-
|
|
5054
|
-
|
|
4924
|
+
await page.mouse.wheel(0, stepDistance * sign);
|
|
4925
|
+
await waitDesktopJitter(60 + index * 20, 0.3);
|
|
4926
|
+
}
|
|
4927
|
+
}
|
|
4928
|
+
};
|
|
4929
|
+
var resolveDelegate2 = (page) => isMobilePage(page) ? MobileHumanize : DesktopCloakHumanize;
|
|
4930
|
+
var callDelegate2 = (method, page, args) => {
|
|
4931
|
+
const delegate = resolveDelegate2(page);
|
|
4932
|
+
return delegate[method](page, ...args);
|
|
4933
|
+
};
|
|
4934
|
+
var CloakBrowserHumanize = {
|
|
4935
|
+
jitterMs(base, jitterPercent = 0.3) {
|
|
4936
|
+
return jitterMs(base, jitterPercent);
|
|
4937
|
+
},
|
|
4938
|
+
initializeCursor(page) {
|
|
4939
|
+
return callDelegate2("initializeCursor", page, []);
|
|
4940
|
+
},
|
|
4941
|
+
humanMove(page, target) {
|
|
4942
|
+
return callDelegate2("humanMove", page, [target]);
|
|
4943
|
+
},
|
|
4944
|
+
humanScroll(page, target, options = {}) {
|
|
4945
|
+
return callDelegate2("humanScroll", page, [target, options]);
|
|
4946
|
+
},
|
|
4947
|
+
humanClick(page, target, options = {}) {
|
|
4948
|
+
return callDelegate2("humanClick", page, [target, options]);
|
|
4949
|
+
},
|
|
4950
|
+
randomSleep(pageOrBaseMs, maybeBaseMs, maybeJitterPercent) {
|
|
4951
|
+
if (isPageLike2(pageOrBaseMs)) {
|
|
4952
|
+
const delegate = resolveDelegate2(pageOrBaseMs);
|
|
4953
|
+
return delegate.randomSleep(maybeBaseMs, maybeJitterPercent);
|
|
5055
4954
|
}
|
|
4955
|
+
return DesktopCloakHumanize.randomSleep(pageOrBaseMs, maybeBaseMs);
|
|
4956
|
+
},
|
|
4957
|
+
simulateGaze(page, baseDurationMs = 2500) {
|
|
4958
|
+
return callDelegate2("simulateGaze", page, [baseDurationMs]);
|
|
4959
|
+
},
|
|
4960
|
+
humanType(page, selector, text, options = {}) {
|
|
4961
|
+
return callDelegate2("humanType", page, [selector, text, options]);
|
|
4962
|
+
},
|
|
4963
|
+
humanPress(page, targetOrKey, maybeKey, options = {}) {
|
|
4964
|
+
if (typeof maybeKey === "string") {
|
|
4965
|
+
return callDelegate2("humanPress", page, [targetOrKey, maybeKey, options]);
|
|
4966
|
+
}
|
|
4967
|
+
return callDelegate2("humanPress", page, [targetOrKey, maybeKey || options]);
|
|
4968
|
+
},
|
|
4969
|
+
humanClear(page, selector) {
|
|
4970
|
+
return callDelegate2("humanClear", page, [selector]);
|
|
4971
|
+
},
|
|
4972
|
+
warmUpBrowsing(page, baseDuration = 3500) {
|
|
4973
|
+
return callDelegate2("warmUpBrowsing", page, [baseDuration]);
|
|
4974
|
+
},
|
|
4975
|
+
naturalScroll(page, direction = "down", distance = 300, baseSteps = 5) {
|
|
4976
|
+
return callDelegate2("naturalScroll", page, [direction, distance, baseSteps]);
|
|
5056
4977
|
}
|
|
5057
4978
|
};
|
|
5058
4979
|
|