我今天意识到,您可以将Chrome DevTools Protocol与Selenium合并,以便在网站中自动化流程中的一些非常特定的部分。
例如:在一些初始条件满足之后,自动将一些文件上传到一个帐户,等等.
根据官方储存库,您可以在cmd上使用如下句子来使用用户数据创建一个新的铬会话:
chrome.exe --remote-debugging-port=9222 --user-data-dir:"C:\Users\ResetStoreX\AppData\Local\Google\Chrome\User Data"因此,在我的例子中,上面的句子生成以下输出:

问题是,在最初的会话中,我添加了一些Chrome extensions,并且我知道,如果我只使用Selenium使用它的chromedriver.exe,我可以使用以下语句轻松地添加一个扩展名(必须压缩为.crx文件):
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
opt = Options() #the variable that will store the selenium options
opt.add_extension(fr'{extension_path}')但是Chrome DevTools Protocol似乎不能像Selenium那样添加更多的Options,所以我必须再次在我的伪会话中安装我的所有扩展,没有问题。
但是,在安装了这样的扩展之后,在我再次执行chrome.exe --remote-debugging-port=9222 --user-data-dir:"C:\Users\ResetStoreX\AppData\Local\Google\Chrome\User Data"之后,这些扩展会继续安装并准备使用吗?如果是的话,在哪里?
或者如果不是,这是否意味着每次我需要用Chrome DevTools Protocol和Chrome extensions进行测试时都必须重新安装这些?谢谢你的建议。
发布于 2022-01-24 11:38:38
可以确认,使用Chrome DevTools Protocol打开的会话以某种方式永久存储所安装的扩展。它还记得,如果您使用某些特定凭据登录到某些站点。
https://stackoverflow.com/questions/70832187
复制相似问题