如何以编程方式单击具有类似类的页面上的所有按钮并添加延迟

时间:2016-06-27 18:08:36

标签: javascript google-chrome

所以我有一个网页上有大约20个按钮,我想通过谷歌浏览器的控制台点击所有这些按钮。

按钮的类都是一样的;但是,很多其他非按钮元素也具有相同的类。

我如何点击具有相同类别的按钮(例如:randomclass),并在每次点击之间添加1秒的延迟。

我开始时:

var elems = document.getElementsByClassName("randomclass");

现在,当我查看该数组时,我不仅会获得按钮,还会链接同一个我不想点击的类。

之后我输入:

for(var i=0; i<elems.length;i++) { elems[i].click(); }

这样做是单击数组中的所有元素。如何告诉它只看按钮(

谢谢你们。有兴趣了解这是什么解决方案。

4 个答案:

答案 0 :(得分:0)

您可以添加if语句来澄清这个简单的要求:

for(var i=0; i<elems.length;i++) {
    if( elems[i].tagName.toLowerCase() === "button" )
        elems[i].click();
}

将来,或者使用更复杂的过滤器,您可以使用document.querySelectorAll()方法获取节点。

var elems = document.querySelectorAll('button.randomclass');
for( var i = 0; i < elems.length; i++ ) {
    //Do stuff here...
}

答案 1 :(得分:0)

这个解决方案是基于jQuery的。 :)

&#13;
&#13;
$('.clickme').each(function(i,button){
   $(button).click(function(e){
      console.log('im on fire ',$(this).attr('name'));
   });
});

$('#fire').click(function(){
   console.log('fired');
   $('.clickme').each(function(i,button){
      $(button).trigger('click');
   });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type='button' id='fire' value='FIRE BOTH' />
<input type='button' name='one' class='clickme' value='One' />
<input type='button' name='two' class='clickme' value='Two' />
&#13;
&#13;
&#13;

答案 2 :(得分:0)

试试此代码

doc.children.each_with_object([]){ |n, a| a << [n.text, n.name] unless n.text? } 
# => [["My", "nnp"], ["name", "nn"], ["is", "vbz"], ["Max", "nnp"]]

答案 3 :(得分:-1)

首先,只需使用Document.querySelectorAll获取按钮并从那里开始。

https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelectorAll