通过Javascript自动单击具有唯一标签和类名的页面上的按钮的方法

Posted

技术标签:

【中文标题】通过Javascript自动单击具有唯一标签和类名的页面上的按钮的方法【英文标题】:Way to automatically click button on page with unique tag & class name via Javascript 【发布时间】:2019-02-15 00:44:15 【问题描述】:

我目前正在尝试找出一种方法来自动单击具有特定标签和类的网页上的按钮。我正在使用 Tampermonkey(javascript 用户脚本)来实现这一点。这是我需要与之交互的 CSS/html 元素的图像:

我想与之交互的元素和按钮在上图中突出显示,并包含以下 HTML:

<li data-v-29761082 class="list-item">

我一直在尝试单击控制台中的按钮,但无济于事:

document.querySelector('li data-v-29761082.list-item')[0].click();

“data-v-29761082”部分让我失望,我不知道如何将这些字符合并到查询选择器中。我试图将整个名称视为一个标签,但这没有奏效。我只是尝试单击屏幕截图中突出显示的按钮,但我仍在寻找解决方案。

实际上,我可能需要使用 waitForkeyElements 来让代码在 Tampermonkey 的页面上自动运行,但现在我只是在寻找一种使用特定标签和类信息单击上面突出显示的按钮的方法。如果有另一种解决问题的方法(可能是不同的元素等)也足够了。提前致谢。

【问题讨论】:

你会试试吗? document.querySelector('li[data-v-29761082].list-item').click(); 在控制台中工作!非常感谢 【参考方案1】:

这就是你查询的方式Select li.list-item[data-v-29761082]

.click() 是 jquery。所以你要么用 jquery 做到这一点:

$(document.querySelector("li.list-item[data-v-29761082]")).trigger('click');

甚至

$("li.list-item[data-v-29761082]").trigger('click')

或者这个用纯js:

var item = document.querySelector("li.list-item[data-v-29761082]");

if (item) 
    item.dispatchEvent(new Event('click'));

【讨论】:

以上是关于通过Javascript自动单击具有唯一标签和类名的页面上的按钮的方法的主要内容,如果未能解决你的问题,请参考以下文章

如何使用java-script和jquery为列表中重复单击的标签存储类名?

为每个具有类名的 div 动态创建按钮,并创建显示/隐藏单击功能

我如何通过 className 单击此元素,因为我将它用于具有相同类名的多个屏幕

使用javascript在具有唯一ID的html标签标签中显示数组中的文本

Vue Router 提供的标签组件

如果单击具有淡入淡出效果的其他链接,则切换类名并删除