吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1601|回复: 15
收起左侧

[求助] Selenium如何执行script脚本语言

[复制链接]
ablajan 发表于 2021-6-26 14:28
我的代码最后几行是这样的:
[Asm] 纯文本查看 复制代码
        self.bro.find_element_by_xpath('//*[@id="lx-box-id"]/li/a').click()
        time.sleep(1)
        with open("code.txt", "r",encoding='utf-8') as f:
            code = f.read()
        webdriver.Chrome.execute_script(code)



目的就是selenium到达我想要的页面,然后执行code.txt里保存好的代码。
但是提示:
TypeError: execute_script() missing 1 required positional argument: 'script'

如何让code.txt里面的代码执行到页面呢?

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Hangjau 发表于 2021-6-26 15:28
https://zhuanlan.zhihu.com/p/369363558   看这个  你的文本应该是个js的后缀
kof21411 发表于 2021-6-26 16:38
 楼主| ablajan 发表于 2021-6-26 17:24
kof21411 发表于 2021-6-26 16:38
请把code.txt的内容也发一下

code.txt的内容

[Asm] 纯文本查看 复制代码
var answer = [];
var times = 0;
var totalTimes = 0;
 
var Next = function () {
    var questionId = answer[times]['questionId']
    console.log("questionId", questionId)
    // $(`[id$=_${questionId}]`).click();
    $(`li[value=${questionId}]`).children('a').get(0).click()
    setTimeout(
        function () {
            var strAns = answer[times]['answerNo'];
            var arrA = strAns.split('');
            for (a of arrA) {
                if(a == 1){
                    a = 'A'
                }
                if(a == 0){
                    a = 'B'
                }
                $('input[value=' + a + ']').click()
            }
            times += 1;
            if (times < totalTimes) {
                Next();
            }
            else {
                console.debug('完成');
            }
        }, 1000); //等待1000毫秒, 如果网速不好适当增加这里的值;
};
var getCookie = function(name) {
    var v = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');
    return v ? v[2] : null;
}
var start = function () {
    console.debug('开始');
    let paperId = $('#hid').attr('value')
    let seriesId = getCookie(`ex_range_${paperId}`)
    let answerUrl = `http://www.faxuanyun.com/ess/service/getpaper?paperId=${paperId}&series=${seriesId}_answer`
    fetch(answerUrl, {
        "headers": {
            "cache-control": "no-cache",
            "pragma": "no-cache",
            "upgrade-insecure-requests": "1"
        },
        "referrerPolicy": "strict-origin-when-cross-origin",
        "body": null,
        "method": "GET",
        "mode": "no-cors",
        "credentials": "include"
    }).then(res => res.text()).then(body => {
        console.log("test", body);
                if (!body) {
                        console.log('响应结果异常!')
                        return;
                }
        let answerString = body.split("\n")[2];
        answer = JSON.parse(answerString);
        totalTimes = answer.length;
        Next();
    });
}
start();
头像被屏蔽
yike911 发表于 2021-6-26 18:05
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| ablajan 发表于 2021-6-26 18:12
yike911 发表于 2021-6-26 18:05
目测是自动答题js。。。

就是,为了让我媳妇答题得分,我也是拼了。。。。。。
kof21411 发表于 2021-6-26 18:34
ablajan 发表于 2021-6-26 17:24
code.txt的内容

[Asm] 纯文本查看 复制代码
var answer = [];
[/quote]

改为这样
[mw_shl_code=python,true]self.bro.find_element_by_xpath('//*[@id="lx-box-id"]/li/a').click()
time.sleep(1)
with open("code.txt", "r",encoding='utf-8') as f:
	lines = f.readlines()
	code = "".join(lines)
webdriver.Chrome.execute_script(code)
 楼主| ablajan 发表于 2021-6-26 19:41
本帖最后由 ablajan 于 2021-6-26 19:42 编辑

按你说的修改,还是一楼的提示。
所以我改成了这样
[Asm] 纯文本查看 复制代码
        
def script(self,code):
                with open("code.txt", "r",encoding='utf-8') as f:
                lines = f.readlines()
                code = "".join(lines)
                return webdriver.Chrome.execute_script(code)


提示倒是没有了,但浏览器毫无反应。我想code.txt里的代码运行到浏览器,code.txt里的代码本来是chrome的控制台console里面运行的代码,python这样导入应该是不对的,不知道有没有别的办法,比如python能否实现打开控制台console然后粘贴这些代码?
kof21411 发表于 2021-6-26 19:47
ablajan 发表于 2021-6-26 19:41
按你说的修改,还是一楼的提示。
所以我改成了这样
[mw_shl_code=asm,true]        

你把code.txt文件里的注释内容全部删了//开头的内容
 楼主| ablajan 发表于 2021-6-26 20:00
kof21411 发表于 2021-6-26 19:47
你把code.txt文件里的注释内容全部删了//开头的内容

删除了2处的注释部分,还是一样,浏览器没有任何反应,pycharm没有任何提示。。。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 01:34

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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