上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖

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

[复制链接]
  • TA的每日心情
    开心
    2022-11-27 01:49
  • 签到天数: 1 天

    [LV.1]初来乍到

    2

    主题

    6

    回帖

    10

    积分

    助理工程师

    积分
    10
    发表于 2022-11-27 01:48:25 | 显示全部楼层 | 阅读模式
    悬赏5油猫币已解决

    本帖最后由 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
    就是只打上了对勾 却没实现全选的功能
    微信截图_20221127014416.png
    正常点击的话 会有全选的功能

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

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

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

    重复操作【自动全选-----刷新-----等待弹出确定按钮----下一页】
    目前写出来的是这样

    window.setInterval(function(){
         少个自动全选
        document.querySelector('#checkboxAll').checked=true
        document.querySelector('button.btn-cyan').click()
          $('a:contains(下一页)')[0].click()
          $('a:contains(确定)')[0].click()
    },2000);

    麻烦老大再看看有没有其他问题
    我自己感觉 问题1 全选---刷新--到弹出确定会有延迟3-5秒左右---下一页

    最佳答案

    查看完整内容

    [md]![image.png](data/attachment/forum/202211/27/022506vw5evuwedbwoa655.png) 有可能是这个网页元素有事件侦听,你先点这个元素,然后点击右边的事件侦听器 最简单的就是click跟真实点击一样 然后就是,会有一个click侦听,你需要document.querySelector('a[id="newspecial'])dispatchEvent(new Event('click'))一下然后才能实现效果 再高级一点,会有mouseover,mouseout,blur,focus等等等等(不止针对点击)有可能需要传入不 ...
  • TA的每日心情

    1 小时前
  • 签到天数: 759 天

    [LV.10]以坛为家III

    30

    主题

    336

    回帖

    1170

    积分

    荣誉开发者

    积分
    1170

    油中2周年生态建设者油中3周年荣誉开发者

    发表于 2022-11-27 01:48:26 | 显示全部楼层

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

    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5966

    回帖

    6763

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6763

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2022-11-27 13:07:24 | 显示全部楼层
    Su. 发表于 2022-11-27 02:35
    [md]!(data/attachment/forum/202211/27/022506vw5evuwedbwoa655.png)
    有可能是这个网页元素有事件侦听,你 ...

    正确答案哦~哥哥加油!
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2022-11-27 01:49
  • 签到天数: 1 天

    [LV.1]初来乍到

    2

    主题

    6

    回帖

    10

    积分

    助理工程师

    积分
    10
    发表于 2022-11-27 13:19:36 | 显示全部楼层
    微信截图_20221127131514.png
    找到了 这个javascript:;
    document.querySelector('#checkboxAll')dispatchEvent(new Event('click'))
    document.querySelector('#checkboxAll').dispatchEvent(new Event('click'))
    第一个是复制你的 然后报错 我就前面加了个点 又复制了一边 成功了
    谢谢你 谢谢你谢谢你真的感谢 昨天研究到半夜 今早一看你的 就解决了 谢谢
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2022-11-27 01:49
  • 签到天数: 1 天

    [LV.1]初来乍到

    2

    主题

    6

    回帖

    10

    积分

    助理工程师

    积分
    10
    发表于 2022-11-27 13:37:17 | 显示全部楼层
    Su. 发表于 2022-11-27 02:35
    [md]!(data/attachment/forum/202211/27/022506vw5evuwedbwoa655.png)
    有可能是这个网页元素有事件侦听,你 ...

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

    使用道具 举报

  • TA的每日心情

    1 小时前
  • 签到天数: 759 天

    [LV.10]以坛为家III

    30

    主题

    336

    回帖

    1170

    积分

    荣誉开发者

    积分
    1170

    油中2周年生态建设者油中3周年荣誉开发者

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

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

    使用道具 举报

  • TA的每日心情
    开心
    2022-11-27 01:49
  • 签到天数: 1 天

    [LV.1]初来乍到

    2

    主题

    6

    回帖

    10

    积分

    助理工程师

    积分
    10
    发表于 2022-11-27 14:02:00 | 显示全部楼层
    Su. 发表于 2022-11-27 13:42
    那就加个条件判断,观察一下弹出来会有什么特征或者变化
    if(弹出来){下一页();全选()} ...

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

    使用道具 举报

  • TA的每日心情

    1 小时前
  • 签到天数: 759 天

    [LV.10]以坛为家III

    30

    主题

    336

    回帖

    1170

    积分

    荣誉开发者

    积分
    1170

    油中2周年生态建设者油中3周年荣誉开发者

    发表于 2022-11-27 14:07:51 | 显示全部楼层
    15555006583 发表于 2022-11-27 14:02
    哥哥 我有个小想法
    就是 让他进行等待 直到 $('a:contains(确定)')[0].click()这个命令执行完成 再执行下 ...

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

    使用道具 举报

  • TA的每日心情
    开心
    2022-11-27 01:49
  • 签到天数: 1 天

    [LV.1]初来乍到

    2

    主题

    6

    回帖

    10

    积分

    助理工程师

    积分
    10
    发表于 2022-11-27 14:18:42 | 显示全部楼层
    Su. 发表于 2022-11-27 14:07
    嗯,把下一步的代码写到click()的括号里,最好是个完整的函数
    像click(下一页.click())这种简单的是可以 ...

    哥哥 我又来麻烦你了
    1. window.setInterval(function(){
    2.     document.querySelector('#checkboxAll').dispatchEvent(new Event('click'))
    3.     document.querySelector('button.btn-cyan').click()
    4.       $('a:contains(确定)')[0].click()
    5.       $('a:contains(下一页)')[0].click()
    6. },2000);
    复制代码

    我need you
          $('a:contains(确定)')[0].click() 【执行完成后再执行下一步】
          $('a:contains(下一页)')[0].click()

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

    使用道具 举报

  • TA的每日心情

    1 小时前
  • 签到天数: 759 天

    [LV.10]以坛为家III

    30

    主题

    336

    回帖

    1170

    积分

    荣誉开发者

    积分
    1170

    油中2周年生态建设者油中3周年荣誉开发者

    发表于 2022-11-27 14:22:20 | 显示全部楼层
    15555006583 发表于 2022-11-27 14:18
    哥哥 我又来麻烦你了

    我need you

    嗯,执行完执行下一步在上面,你可能没看到
    延时的话,setTimeout(()=>{
    $('a:contains(下一页)')[0].click()
    },10*1000)
    逗号后面跟的是毫秒数,10*1000毫秒
    回复

    使用道具 举报

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表