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

油猴脚本 无法读取页面内iframe下的 class信息

[复制链接]
  • TA的每日心情
    开心
    3 天前
  • 签到天数: 2 天

    [LV.1]初来乍到

    1

    主题

    3

    帖子

    5

    积分

    助理工程师

    Rank: 1

    积分
    5
    发表于 4 天前 | 显示全部楼层 | 阅读模式
    10油猫币

    本帖最后由 ZYMKJ 于 2022-9-22 15:55 编辑

    这是我和同学 一起弄得一个职称在线学习刷时长脚本,网站无答题无确认,但有完成度判断
    播放页面A,有2个iframe,其中第2个iframe(无ID、无name,外部链接src="https://***.****/***/**\*)引用了另外一个网页B进行播放(图片1)![图片1.png](data/attachment/forum/202209/22/154941i5wu52n25yqx25za.png),其中有一个需要点击的按钮(非button,只有class)(图片2)![图片2.png](data/attachment/forum/202209/22/154953bdk7us7bhh75k7bk.png)
    JS脚本 querySelectorall 无法读取 网页B中的class并进行点击。

    PS.如何确定这个网站关于视频播放完是如何确认的?已时间节点为准还是以时长为准?(图3)
    图片3.png

    求解决方法。

    自己编制的脚本如下
    // ==UserScript==
    // @name 自动学习-带跳转
    // @namespace 自动学习测试
    // @version 0.11
    // @description 自动学习测试
    // @author 自动学习测试
    // @match ://zyjs.lngbzx.gov.cn/
    // @icon https://www.google.com/s2/favicons?sz=64&domain=lngbzx.gov.cn
    // @grant none
    // ==/UserScript==

    (function(){
    'use strict';

    function ay(){
      if(document.URL.search('study/yearplan/list')>1){
    document.getElementsByTagName("a")[18].click()

    }
    }
    setTimeout(ay,5000)

    document.addEventListener("visibilitychange", function(){
        console.log(document.visibilityState);
        if(document.visibilityState == "hidden") {
        }else if (document.visibilityState == "visible"){
                if(document.URL.search('yearplan/gostudy')>1){setTimeout(sx,1000)}
            }
    });
    function sx(){window.locatgion.reload()}
    function zy(){
        if(document.URL.search('yearplan/gostudy')>1){
            var xxnum = document.querySelectorAll('dl.w_zxinfo.fl>dd.time>span.fr')
            for (var i=0;i<xxnum.length;i++){
                if(xxnum[i].innerText.search("完成0%")==0){
                    document.querySelectorAll('dl.w_zxinfo.fl>dd.teach>p')[i].click()
                    break;
                }else if(i==xxnum.length-1){
                    var yeshu=document.querySelectorAll('ul.pagination>li').length-2
                    var nowyeshu=Number( document.querySelector('ul.pagination>li>span.on').innerText)
                    if(yeshu==nowyeshu){
                        window.close()
                        }else {
                            document.querySelector('ul.pagination>li>span.on').parentNode.nextElementSibling.getElementsByTagName('a')[0].click()
                        }
                    }
                }       
            }
        }
        setTimeout(zy,3000)
        function cy(){
            if(document.URL.search('resource/info')>1){
                if(document.getElementsByTagName('button')[0].innerText=="点击观看"){
                    document.getElementsByTagName('button')[0].click()
                }
            }
        }
        setTimeout(cy,2000)
            function bfy(){
            if(document.URL.search('study/xml/tss')>1){
                    document.querySelector(".user_choise").click()
                }
            }
        setTimeout(bfy,50000)

    })();

    图片1.png
    图片2.png
  • TA的每日心情
    慵懒
    1 小时前
  • 签到天数: 97 天

    [LV.6]常住居民II

    9

    主题

    220

    帖子

    537

    积分

    荣誉开发者

    Rank: 10Rank: 10Rank: 10

    积分
    537

    新人进步奖荣誉开发者喜迎中秋

    发表于 4 天前 | 显示全部楼层
    同域iframe
    1. document.querySelectorAll("iframe")[1].contentWindow.document.querySelector(这里填CLASS选择器)
    复制代码

    跨域iframe建议看这篇
    [油猴开发指南]关于脚本如何处理iframe的碎碎念
    https://bbs.tampermonkey.net.cn/thread-2895-1-1.html
    (出处: 油猴中文网)
    回复

    使用道具 举报

  • TA的每日心情
    开心
    前天 23:59
  • 签到天数: 88 天

    [LV.6]常住居民II

    386

    主题

    3405

    帖子

    3388

    积分

    管理员

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

    Rank: 10Rank: 10Rank: 10

    积分
    3388

    喜迎中秋国庆纪念章荣誉开发者家财万贯管理员

    发表于 4 天前 | 显示全部楼层
    https://bbs.tampermonkey.net.cn/ ... 6%88%98%E7%AF%87%5D
    跨域实战
    善用论坛搜索
    各种教程非常完善的
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    3 天前
  • 签到天数: 2 天

    [LV.1]初来乍到

    1

    主题

    3

    帖子

    5

    积分

    助理工程师

    Rank: 1

    积分
    5
    发表于 4 天前 | 显示全部楼层
    李恒道 发表于 2022-9-22 17:21
    https://bbs.tampermonkey.net.cn/forum.php?mod=viewthread&tid=2267&highlight=%5B%E8%84%9A%E6%9C%AC%E5 ...

    就是看到你的B站视频,然后找到论坛帖子,然后开始动手写自己刷课脚本
    回复

    使用道具 举报

  • TA的每日心情
    开心
    前天 23:59
  • 签到天数: 88 天

    [LV.6]常住居民II

    386

    主题

    3405

    帖子

    3388

    积分

    管理员

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

    Rank: 10Rank: 10Rank: 10

    积分
    3388

    喜迎中秋国庆纪念章荣誉开发者家财万贯管理员

    发表于 4 天前 | 显示全部楼层
    ZYMKJ 发表于 2022-9-22 18:39
    就是看到你的B站视频,然后找到论坛帖子,然后开始动手写自己刷课脚本 ...

    卡在哪里直接在论坛搜就可以
    b站连起步都没讲完...
    论坛密度差不多是b站教程的五六倍

    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    3 天前
  • 签到天数: 2 天

    [LV.1]初来乍到

    1

    主题

    3

    帖子

    5

    积分

    助理工程师

    Rank: 1

    积分
    5
    发表于 4 天前 | 显示全部楼层
    本帖最后由 ZYMKJ 于 2022-9-22 19:24 编辑
    李恒道 发表于 2022-9-22 18:58
    卡在哪里直接在论坛搜就可以
    b站连起步都没讲完...
    论坛密度差不多是b站教程的五六倍

    现在前面几步都能对付过去。就最后一步 点击“开始学习”卡住了。 设计到跨域 iframe,
    A页面: https://111.aaa.cn/bbb/ccc,其中播放器是iframe src=https://123.aaa.cn/def/mkj
    然后那个“开始学习”也不是按钮,而是一个class,但是可以点击,click 命令可以实现点击。  现在就是在A页面 读取不到 “开始学习”的class,这不正在研究吗。


    从你的【脚本实战篇】 第一个开始看起
    回复

    使用道具 举报

  • TA的每日心情
    开心
    前天 23:59
  • 签到天数: 88 天

    [LV.6]常住居民II

    386

    主题

    3405

    帖子

    3388

    积分

    管理员

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

    Rank: 10Rank: 10Rank: 10

    积分
    3388

    喜迎中秋国庆纪念章荣誉开发者家财万贯管理员

    发表于 4 天前 | 显示全部楼层
    ZYMKJ 发表于 2022-9-22 19:23
    现在前面几步都能对付过去。就最后一步 点击“开始学习”卡住了。 设计到跨域 iframe,
    A页面: https://1 ...

    哥哥加油
    steven推荐的也可以看看
    他的是针对跨域的

    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2022-8-21 01:21
  • 签到天数: 1 天

    [LV.1]初来乍到

    6

    主题

    38

    帖子

    41

    积分

    初级工程师

    Rank: 4

    积分
    41
    发表于 前天 20:42 | 显示全部楼层
    ZYMKJ 发表于 2022-9-22 19:23
    现在前面几步都能对付过去。就最后一步 点击“开始学习”卡住了。 设计到跨域 iframe,
    A页面: https://1 ...

    都是aaa.cn,主域名相同,应该可以获取。
    参考链接:https://bbs.tampermonkey.net.cn/thread-3269-1-1.html
    回复

    使用道具 举报

    发表回复

    本版积分规则

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