javascript - 使用javascript单击页面上的所有按钮

标签 javascript jquery html

所以我尝试单击特定网页上的所有按钮。但棘手的是,这些按钮只有当鼠标悬停在按钮上时才会显示。单击完页面上的所有按钮后,我需要单击下一页按钮。再次单击新网页上的所有按钮,依此类推。

我实际上有一个工作脚本。但我在 javascript 中使用 setInterval 函数,我觉得这是一种很奇怪的方法。这是我的工作脚本:

alert ("Please refresh the page to stop");

setInterval(function () {

    var inputs=document.getElementsByClassName('tw-action-button btn btn-sm ng-isolate-scope btn-primary');
    var names=document.getElementsByClassName('screen-name');       

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

}, 250);

//Change the page in every 15 seconds   
setInterval(function () {

var nextButton=document.getElementsByClassName('btn btn-default btn-forward');

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

    window.scrollTo(0,0);

}, 10000);

但是,当我将上面的代码更改为下面的代码时,脚本不会单击按钮。我必须使用 setInterval 函数吗?这是修改后但不起作用的代码:

function clickButtons(){

        var followButtons = $('.buttonClass');
        var numberOfButtons = followButtons.length;

        for(var i=0; i<numberOfButtons; i++){
            followButtons[i].click();
        }
        setTimeout(nextPage, 500);
    }

    function nextPage(){

        var nextPageBtn = $('.nextPageButtonClass');
        nextPageBtn.click();    

        setTimeout(clickButtons,500);
    }

这是网页的 HTML: HTML for the webpage

最佳答案

我可能会考虑使用小书签,或者如果项目允许,则使用浏览器扩展。

由于您的代码需要对多个页面应用相同的操作,因此您需要以某种方式访问​​每个页面的 HTML,同时保留对 JS 代码的访问权限。

对于小书签,每次单击它时,您都可以在单击前进到下一页的按钮之前处理页面上的所有按钮。此时,您只需再次单击小书签即可。

对于扩展程序,我将使用一个 bool 值来指示每次访问所属域的页面时是否要执行指定的操作。然后,一旦启用,我只需访问第一页并让它单击所有按钮,单击前进的按钮并允许重复调用脚本。

我认为小书签是这两个选项中最合适的选择 - 快速、简单、需要注意的边缘情况很少。

我有一个书签,允许您使页面上的任何表格可排序。只需导航到该页面,单击小书签,然后瞧!单击标题行中的列可根据该行对表格进行排序。这是 sorttable js 库 ( http://www.kryogenix.org/code/browser/sorttable/#ajaxtables ) 提供的示例代码

这是小书签的“URL”: javascript:(function(){var s=document.createElement('script');s.src='http://kryogenix.org/code/browser/sorttable/sorttable.js';s.onload=function(){sorttable.init();Array.prototype.slice.call(document.getElementsByTagName('table')).forEach(function(t){sorttable.makeSortable(t);})};document.getElementsByTagName('head')[0].appendChild(s);})()

enter image description here

在我看来,插入一些代码来执行其中一个按钮的点击似乎是微不足道的。

关于javascript - 使用javascript单击页面上的所有按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35122032/

相关文章:

javascript - 没有浏览器是否可以进行ajax调用?

javascript - 滑动门按钮无法正确点击

javascript - jQuery 计数跨越 div 错误

html - 菜单覆盖 - 无法使内容全高

javascript - Echarts.js : Detect a click on a subset of data

javascript - 使用 PHP 创建一个简单的投票系统

javascript - 如何根据访客推荐使用 Javascript(或 PHP)将值插入到表单中

jquery - 限制用户输入

javascript - 如何在 Angular ng-repeat 中创建新行?

javascript - 仅在某些级别上防止违约