Python selenium 函数 driver.execute_script() 不会在脚本中执行我的代码?
Posted
技术标签:
【中文标题】Python selenium 函数 driver.execute_script() 不会在脚本中执行我的代码?【英文标题】:Python selenium function driver.execute_script() won't execute my code in the script? 【发布时间】:2020-10-06 01:37:43 【问题描述】:在我的 python 脚本中,我使用 selenium 函数driver.execute_script()
,它不会执行脚本中的所有代码。具体来说,一种代码有效,而另一些则无效。
此代码有效:
driver.execute_script("""
let w = window.open("","_blank");
w.console.log("asdf");
""".format(link))
但这在这里不起作用:
driver.execute_script("""
let w = window.open("","_blank");
w.addEventListener("DOMContentLoaded", function ()
w.console.log("asdf");
);
""".format(link))
我需要这个事件侦听器,因为这个函数的主体将使用 DOM 元素,但是当我使用事件侦听器键入代码时,python 只是跳过执行脚本,为什么? :(
【问题讨论】:
首先您可以打印生成的字符串并在浏览器的 javascript 中直接使用它。其他问题可能是浏览器可以在您(重新)加载页面时从内存中删除此代码。 在控制台/终端中运行时不会出错吗?当您使用format()
时,...
在字符串中具有特殊含义 - open(""
但也在 function () ...
中 - 您必须使用
才能正常使用它
- function () ....
是的,你是对的!花括号是个问题。谢谢:)
【参考方案1】:
当您使用format()
时,...
在字符串中具有特殊含义-不仅在open(""
中,而且在function () ...
中-您必须使用
才能正常使用它
-
function () ....
更多关于PyFormat
【讨论】:
以上是关于Python selenium 函数 driver.execute_script() 不会在脚本中执行我的代码?的主要内容,如果未能解决你的问题,请参考以下文章
python 将jQuery注入Selenium Driver