我有一个页面,其中有一个列表,我需要在该列表中自动且连续地单击所有项目。我还有一个按钮,单击每个项目后都需要单击。毕竟,单击完所有项目后将重复此操作。我写了一个Javascript代码,它可以按我期望的方式工作。但是问题在于这是非常冗长的代码,因为我在列表中大约有170个项目。下面仅给出了7个项目的代码示例:
setInterval(function(){
var btn = document.getElementById("ember331");
var span_0 = document.getElementsByClassName("ember-view")[0];
setTimeout(function(){
span_0.scrollIntoView();
document.getElementById("ember104").scrollIntoView();
span_0.click(); }, 5000);
setTimeout(function(){
btn.click(); }, 8000);
var span_1 = document.getElementsByClassName("ember-view")[1];
setTimeout(function(){
span_1.click(); }, 13000);
setTimeout(function(){
btn.click(); }, 16000);
var span_2 = document.getElementsByClassName("ember-view")[2];
setTimeout(function(){
span_2.click(); }, 21000);
setTimeout(function(){
btn.click(); }, 24000);
var span_3 = document.getElementsByClassName("ember-view")[3];
setTimeout(function(){
span_3.click(); }, 290000);
setTimeout(function(){
btn.click(); }, 32000);
var span_4 = document.getElementsByClassName("ember-view")[4];
setTimeout(function(){
span_4.click(); }, 37000);
setTimeout(function(){
btn.click(); }, 40000);
var span_5 = document.getElementsByClassName("ember-view")[5];
setTimeout(function(){
span_5.click(); }, 450000);
setTimeout(function(){
btn.click(); }, 48000);
var span_6 = document.getElementsByClassName("ember-view")[6];
setTimeout(function(){
span_6.click(); }, 450000);
setTimeout(function(){
btn.click(); }, 48000);
}, 53000);
您可能已经注意到,只有7个项目太长了。
**所以,可以用简短和替代的方式编写它吗?
-先谢谢您!
考虑使用async
函数。每当需要延迟时,await
承诺都会在所需的毫秒数后解决。然后,您可以根据需要在单击之前循环遍历.ember-view
和await
: