如何在使用 selenium 加载页面之前将 javascript 注入页面

How to inject javascript into page before page loads with selenium

我正在尝试将 javascript 注入页面,以便它在任何其他脚本 loaded/executed 之前运行。

我四处搜索并看到多个建议说这可以通过 Devtool API 并调用 Page.addScriptToEvaluateOnNewDocument 但我似乎无法让它工作。

这是我试过的:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get(url)
driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {'source': 'alert("This is an alert.")'})

代码运行没有任何错误,但浏览器中没有显示任何警报。我错过了什么?

您应该在创建驱动程序之后但在获取网页之前添加代码

from selenium import webdriver

driver = webdriver.Chrome()
driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {'source': 'alert("This is an alert.")'})
driver.get(url)