【发布时间】: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 () {{....}} -
是的,你是对的!花括号是个问题。谢谢:)
标签: javascript python selenium execute-script