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+selenium常用javascript函数

python selenium--常用函数3

python 将jQuery注入Selenium Driver

python 将jQuery注入Selenium Driver

Python+Selenium登录

python中通过selenium简单操作及元素定位