15555006583 发表于 2022-11-27 01:48:25

脚本自动模拟点击复选框无效

本帖最后由 15555006583 于 2022-11-27 02:29 编辑

> 本帖最后由 15555006583 于 2022-11-27 02:18 编辑

> 本帖最后由 15555006583 于 2022-11-27 02:14 编辑

[零基础学习油猴脚本开发]第二节 脚本自动化之模拟点击和表单填写
今天晚上看完这个之后,想做一个自动点击全选按钮
按照视频上的操作后出现的问题是 只会选 选择框(全选) 但实际并没用全选
document.querySelector('#checkboxAll').checked=true
![微信截图_20221127014236.png](data/attachment/forum/202211/27/014307kh6g9fwh611fk7e4.png)
就是只打上了对勾 却没实现全选的功能
![微信截图_20221127014416.png](data/attachment/forum/202211/27/014433agzynozbbgoy84z8.png)
正常点击的话 会有全选的功能


纯小白 真真正正的第一次,感觉太酷了
想实现的功能是 【自动全选-----刷新-----等待弹出确定按钮----下一页】
全选:出问题不会操作
刷新:document.querySelector('button.btn-cyan').click()

确定(等待弹出):$('a:contains(确定)').click()

下一页:$('a:contains(下一页)').click()【按照B站的视频没用特征 翻页均为class="page-link"就又找了$('a:contains(下一页)这个方法】

重复操作【自动全选-----刷新-----等待弹出确定按钮----下一页】
目前写出来的是这样
```
window.setInterval(function(){
   少个自动全选
    document.querySelector('#checkboxAll').checked=true
    document.querySelector('button.btn-cyan').click()
      $('a:contains(下一页)').click()
      $('a:contains(确定)').click()
},2000);
```
麻烦老大再看看有没有其他问题
我自己感觉 问题1 全选---刷新--到弹出确定会有延迟3-5秒左右---下一页

Su. 发表于 2022-11-27 01:48:26

!(data/attachment/forum/202211/27/022506vw5evuwedbwoa655.png)
有可能是这个网页元素有事件侦听,你先点这个元素,然后点击右边的事件侦听器
最简单的就是click跟真实点击一样
然后就是,会有一个click侦听,你需要document.querySelector('a)dispatchEvent(new Event('click'))一下然后才能实现效果
再高级一点,会有mouseover,mouseout,blur,focus等等等等(不止针对点击)有可能需要传入不同的事件才能达到效果
再高级的我就没见过了,抛砖引玉了(这么晚没睡,哥哥一定很热爱,一起加油

李恒道 发表于 2022-11-27 13:07:24

Su. 发表于 2022-11-27 02:35
!(data/attachment/forum/202211/27/022506vw5evuwedbwoa655.png)
有可能是这个网页元素有事件侦听,你 ...

正确答案哦~哥哥加油!

15555006583 发表于 2022-11-27 13:19:36


找到了 这个javascript:;
document.querySelector('#checkboxAll')dispatchEvent(new Event('click'))
document.querySelector('#checkboxAll').dispatchEvent(new Event('click'))
第一个是复制你的 然后报错 我就前面加了个点 又复制了一边 成功了
谢谢你 谢谢你谢谢你真的感谢 昨天研究到半夜 今早一看你的 就解决了 谢谢{:4_94:}

15555006583 发表于 2022-11-27 13:37:17

Su. 发表于 2022-11-27 02:35
!(data/attachment/forum/202211/27/022506vw5evuwedbwoa655.png)
有可能是这个网页元素有事件侦听,你 ...

哥哥 按照你说的 弄好了
现在测试又发现一个问题, 就是 全选----刷新----确定按钮(弹出来需要时间不固定)----下一页
现在还没等弹出来 他就自动执行下一页然后全选

Su. 发表于 2022-11-27 13:42:04

15555006583 发表于 2022-11-27 13:37
哥哥 按照你说的 弄好了
现在测试又发现一个问题, 就是 全选----刷新----确定按钮(弹出来需要时间不固 ...

那就加个条件判断,观察一下弹出来会有什么特征或者变化
if(弹出来){下一页();全选()}

15555006583 发表于 2022-11-27 14:02:00

Su. 发表于 2022-11-27 13:42
那就加个条件判断,观察一下弹出来会有什么特征或者变化
if(弹出来){下一页();全选()} ...

哥哥 我有个小想法
就是 让他进行等待 直到 $('a:contains(确定)').click()这个命令执行完成 再执行下一步 有什么方法不?

Su. 发表于 2022-11-27 14:07:51

15555006583 发表于 2022-11-27 14:02
哥哥 我有个小想法
就是 让他进行等待 直到 $('a:contains(确定)').click()这个命令执行完成 再执行下 ...

嗯,把下一步的代码写到click()的括号里,最好是个完整的函数
像click(下一页.click())这种简单的是可以的,复杂的就需要
click(下一步())
function 下一步(){
    .........
}
这样了

15555006583 发表于 2022-11-27 14:18:42

Su. 发表于 2022-11-27 14:07
嗯,把下一步的代码写到click()的括号里,最好是个完整的函数
像click(下一页.click())这种简单的是可以 ...

哥哥 我又来麻烦你了{:4_98:}
window.setInterval(function(){
    document.querySelector('#checkboxAll').dispatchEvent(new Event('click'))
    document.querySelector('button.btn-cyan').click()
      $('a:contains(确定)').click()
      $('a:contains(下一页)').click()
},2000);
我need you
      $('a:contains(确定)').click() 【执行完成后再执行下一步】
      $('a:contains(下一页)').click()

或者麻烦的话 就
      $('a:contains(确定)').click() 【怎么加个延时10秒再执行下一步】
      $('a:contains(下一页)').click()

Su. 发表于 2022-11-27 14:22:20

15555006583 发表于 2022-11-27 14:18
哥哥 我又来麻烦你了

我need you


嗯,执行完执行下一步在上面,你可能没看到
延时的话,setTimeout(()=>{
$('a:contains(下一页)').click()
},10*1000)
逗号后面跟的是毫秒数,10*1000毫秒
页: [1]
查看完整版本: 脚本自动模拟点击复选框无效