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