12

我正在尝试使用 Chrome 控制台选择页面中的所有按钮并以编程方式单击它们。与我正在玩的类似页面是这个:http ://api.openstack.org/api-ref.html#compute-ext

我已经尝试执行下面的命令,但它没有做我想要的。

$("btn small info").click()

这可能吗?我应该发出什么命令?

4

6 回答 6

12

好吧,您要确保只选择该部分中的按钮,这样您就不会运行搜索。

$("#body .btn").trigger("click");
于 2013-06-25T14:47:59.647 回答
6

根据 Salketers 对该问题的评论,这是一个小脚本,它将以 1 秒的间隔以编程方式一个一个地单击所有按钮,并将单击的按钮记录到控制台:

var buttons = $("button"), 
    interval = setInterval(function(){
        var btn = $(buttons.splice(0, 1));
        console.log("Clicking:", btn);
        btn.click();
        if (buttons.length === 0) {
            clearInterval(interval);
        }
    }, 1000);
于 2013-06-25T15:01:25.800 回答
4

您的班级似乎缺少.. 尝试其中之一:

$(".btn").click();
$("button").click();
$("input:submit").click();
$(".btn.small.info").click();
于 2013-06-25T14:44:20.500 回答
4

假设页面已经包含了 jQuery 库(引用的页面确实如此),那么:

$(".btn.small.info").click();

这将隐式遍历具有这三个类的所有选择器,并模拟单击事件。

如果页面没有必要的 jQuery 库,那么在执行上面的命令之前试试这个:

var jq = document.createElement('script');
jq.src = "http://code.jquery.com/jquery-latest.min.js";
document.getElementsByTagName('head')[0].appendChild(jq);
jQuery.noConflict();

请注意,您在问题中使用的命令不会选择 btn 类的元素等。您必须使用点来选择.class.

于 2013-06-25T14:53:04.460 回答
4

[新手的简单解决方案]使用下面点击所有匹配的元素

var btns = document.getElementsByClassName('followBtn')
for (var i =0; i<btns.length; i++) 
btns[i].click();

也可以与标签名称一起使用。

或者您也可以使用 Xpaths 定义特定元素使用下面的代码示例

*//Xpath to get all the elements whose class is "followBtn" and tagname button*
var btns = $x('//button[@class="followBtn"]')

*// looping through all the elements in btns*
for (var i =0; i<btns.length; i++) 
btns[i].click();
于 2020-06-28T09:48:50.623 回答
3

您的选择器可能是错误的。尝试做这样的事情

$(".btn.small.info").click();

这将单击带有 classes 的按钮btn small info,您尝试单击 dom 元素。

这里有更多关于 jQuery 选择器的文档:

于 2013-06-25T14:45:17.240 回答