gpt4 book ai didi

javascript - 如何自动点击元素

转载 作者:行者123 更新时间:2023-12-02 22:14:19 25 4
gpt4 key购买 nike

我在 reddit 上收到了很多已保存的帖子/评论(似乎有一千个),我想知道如何取消保存它们,而不是点击每个人的“取消保存”。

这是我到目前为止的方法:

我右键单击帖子的取消保存按钮,然后单击“检查”以查找类名,然后我用它来分析有多少帖子有该按钮:

document.getElementsByClassName("_10K5i7NW6qcm-UoCtpB3aK _3tRpmsTw--cwH6_MAO3ZOm _3yh2bniLq7bYr4BaiXowdO _2sAFaB0tx4Hd5KxVkdUcAx _28vEaVlLWeas1CDiLuTCap")

这会产生一个数组,我现在将进一步将其保存在变量中,以运行带有点击事件的函数:

var buttonInstances = document.getElementsByClassName("_10K5i7NW6qcm-UoCtpB3aK _3tRpmsTw--cwH6_MAO3ZOm _3yh2bniLq7bYr4BaiXowdO _2sAFaB0tx4Hd5KxVkdUcAx _28vEaVlLWeas1CDiLuTCap")

buttonInstances.someClickFunction()

事情是,(除了我不知道 someClickFunction() 应该做什么),保存按钮似乎具有相同的类。你会怎么做呢?我已经看到了一些解决方案,但代码似乎已被弃用,我只是不断复制和粘贴并收到错误。

也许有人可以给我指出正确的方向,也许在这个过程中我可以收集一些关于 letvar 的进一步知识,以及为什么我应该使用箭头函数等等...

我希望这能让您相信我至少自己尝试过一些东西。

最佳答案

在旧的 reddit 上要容易得多 - 元素的命名是可以预见的。 link-unsave-button<li> 的类名s 是链接取消保存按钮的父级,并且 comment-unsave-button<li> 的类名s 是评论取消保存按钮的父级。

所以,使用选择器字符串

.link-unsave-button > a, .comment-unsave-button > a

您可以迭代所有这些 <a>.click()他们。

由于每次点击都需要网络操作,因此您可能应该在每次点击之间添加延迟,例如 500 毫秒:

const delay = ms => new Promise(res => setTimeout(res, ms));
(async () => {
for (const a of document.querySelectorAll('.link-unsave-button > a, .comment-unsave-button > a')) {
a.click();
await delay(500);
}
console.log('done');
})();

这会删除您 /saved 上所有已保存的链接页面,当你在旧的 reddit 上时。 (是的,我自己尝试过,有效)

您可能可以在新的 reddit 上执行类似的操作(只需使用新的 reddit 上的选择器即可),但类名称可能会有所不同(在我的设备上,它们与您的设备不同),您可能需要重新检查DOM 并在某些情况下更改代码,这不太好。最好从旧的 reddit 上进行。

关于javascript - 如何自动点击元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59443722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com