各位大神好,我正在尝试使用JavaScript代码,实现以下功能:
- 循环点击7个网页元素,
- 点击后5秒再进行点击下一个。
操作方法:在edge浏览器中开发模式中的工作台源代码里面。
目前使用JavaScript代码感觉效果不理想(大多数情况运行,偶尔成功运行也不知为何)。
希望各位不吝赐教。
以下是AI(文心一言)帮忙写的代码
// 定义一个函数来模拟点击
function simulateClick(element) {
var event = new MouseEvent('click', {
'view': window,
'bubbles': true,
'cancelable': true
});
element.dispatchEvent(event);
}
// 定义一个函数来执行循环点击
function cycleClickElements() {
// 使用querySelectorAll获取所有目标元素
var elements = document.querySelectorAll('.slicer-text-wrapper');
// 定义一个递归函数来处理循环点击
function clickNextElement(index) {
if (index < elements.length) {
// 模拟点击当前元素
simulateClick(elements[index]);
console.log(`Clicked element: ${elements[index].textContent.trim()}`);
// 设置下一个点击的延迟
setTimeout(() => {
clickNextElement(index + 1); // 递归调用,增加索引
}, 5000); // 延迟5秒
}
}
// 从第一个元素开始点击
clickNextElement(0);
}
// 调用函数开始循环点击
cycleClickElements();
以下是我通过浏览器选择元素后右击检查再复制的元素
<span class="slicerText" style="font-size: 18.6667px; opacity: 1; color: rgb(255, 255, 255);">制检4班</span>
<span class="slicerText" style="font-size: 18.6667px; opacity: 1; color: rgb(255, 255, 255);">制检5班</span>
<span class="slicerText" style="font-size: 18.6667px; opacity: 1; color: rgb(255, 255, 255);">制检6班</span>
<span class="slicerText" style="font-size: 18.6667px; opacity: 1; color: rgb(255, 255, 255);">制检7班</span>
<span class="slicerText" style="font-size: 18.6667px; opacity: 1; color: rgb(255, 255, 255);">部检4班</span>
<span class="slicerText" style="font-size: 18.6667px; opacity: 1; color: rgb(255, 255, 255);">部检5班</span>
<span class="slicerText" style="font-size: 18.6667px; opacity: 1; color: rgb(255, 255, 255);">制检4班</span>
因为对于JavaScript是初学者,所以经验很少。
代码都是由AI帮忙写代码,当然过程会尝试修正代码。
希望大家指点迷津,看是我的操作方法不对还是代码有问题。
以上,感谢!!!
复制元素的操作:
开发模式运行代码的操作
浏览器元素页面元素(就是希望通过JS自动循环点击这些按钮)
下标越界之后,没有复位,而是终止递归,需要复位: