Save/Load 含有 Python 硒 + Chrome 的饼干

Save/Load Cookies with Python Selenium + Chrome

我想请求对这个老问题进行 2021 年的代码修订:How to save and load cookies using Python + Selenium WebDriver

我对使用 Chrome 在单独的个人资料文件夹中自动管理 cookie 的解决方案特别感兴趣。

我的 objective 是在桌面上有一个文件夹作为独立的虚拟环境,因此所有 cookie 都将保存在该文件夹中,并在您下次启动 Selenium 实例时从同一文件夹加载。

为了寻找最简洁的解决方案,我偶然发现了这些代码片段:

chrome_options = Options()
chrome_options.add_argument("user-data-dir=selenium") 
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get("www.google.com")

第一个解决方案对我不起作用。我收到了“chrome_options”的弃用警告,因此将其更改为“选项”,但代码仍然无法运行并引发一些错误。

options = webdriver.ChromeOptions()
options.add_argument('--headless')
driver = webdriver.Chrome(executable_path=r'C:\chromedriver_win32\chromedriver.exe', options=options)

我在这里无法理解的是使用“ChromeOptions()”而不是“Options()”之间的区别。我也不明白为什么路径直接作为参数传递而不是使用“options.add_argument”。

正如我在开头所说,我正在努力使用 Python Selenium + Chrome 在单独的文件夹环境中为 storing/loading cookie 找到最干净的解决方案。这当然意味着使用更新到 2021 年的最新语法。

from selenium.webdriver.chrome.options import Options
from selenium import webdriver
chrome_options = Options()
chrome_options.add_argument("user-data-dir=selenium") 
driver = webdriver.Chrome(options=chrome_options)
driver.get("https://www.google.com")

您必须像这样使用选项,否则您会从 chrome 个选项中收到折旧警告。