pythonselenium:执行脚本与执行asyn

2024-04-28 17:59:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我不太清楚硒中execute_script和{}之间的区别。在

给出python selenium中的这个示例,将其转换为pytest函数:

driver.get(url)

js = '''
var video = document.getElementById("myVideo");

video.onplaying=function() {
  return "play";
};
'''

video_play = driver.execute_script(js)
assert video_play == "play"

结果是:

^{pr2}$

我错过了什么?我应该在js中使用execute\u async和async/await函数吗?你能给我举几个例子吗?在


Tags: 函数url示例playexecutegetasyncpytest
1条回答
网友
1楼 · 发布于 2024-04-28 17:59:17

您需要为此使用异步脚本。在

driver.get(url)

js = '''
var callback = arguments[arguments.length - 1];
var video = document.getElementById("myVideo");

video.onplaying=function() {
  callback ("play");
};

setTimeout(function(){
  callback("notplayed");
}, 2000);
'''

video_play = driver.execute_async_script(js)
assert video_play == "play"

上面所做的是,它最多等待2秒来播放,如果没有,则返回notplayed。在

请记住,在脚本完成之前,调用不会返回。所以不要认为可以在异步脚本之后执行其他代码。在回调或异步超时之前,代码将停留在execute_async_script

相关问题 更多 >