Selenium如何执行script脚本语言
我的代码最后几行是这样的: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里面的代码执行到页面呢? https://zhuanlan.zhihu.com/p/369363558 看这个你的文本应该是个js的后缀 请把code.txt的内容也发一下 kof21411 发表于 2021-6-26 16:38
请把code.txt的内容也发一下
code.txt的内容
var answer = [];
var times = 0;
var totalTimes = 0;
var Next = function () {
var questionId = answer['questionId']
console.log("questionId", questionId)
// $(``).click();
$(`li`).children('a').get(0).click()
setTimeout(
function () {
var strAns = answer['answerNo'];
var arrA = strAns.split('');
for (a of arrA) {
if(a == 1){
a = 'A'
}
if(a == 0){
a = 'B'
}
$('input').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 : 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");
answer = JSON.parse(answerString);
totalTimes = answer.length;
Next();
});
}
start(); yike911 发表于 2021-6-26 18:05
目测是自动答题js。。。
就是,为了让我媳妇答题得分,我也是拼了。。。。。。 ablajan 发表于 2021-6-26 17:24
code.txt的内容
var answer = [];
改为这样
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:42 编辑
kof21411 发表于 2021-6-26 18:34
改为这样
按你说的修改,还是一楼的提示。
所以我改成了这样
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然后粘贴这些代码?{:1_924:} ablajan 发表于 2021-6-26 19:41
按你说的修改,还是一楼的提示。
所以我改成了这样
你把code.txt文件里的注释内容全部删了//开头的内容 kof21411 发表于 2021-6-26 19:47
你把code.txt文件里的注释内容全部删了//开头的内容
删除了2处的注释部分,还是一样,浏览器没有任何反应,pycharm没有任何提示。。。
页:
[1]
2