使用 Selenium 4,我尝试加载我的个人浏览器配置文件(包括 cookie),以便它可以加载到我之前登录过的网站。我正在使用边缘浏览器。在测试我的代码片段时,它似乎没有加载我的浏览器配置文件,而是创建一个新的(配置文件 1)。我已确保配置文件的路径是正确的。
我的代码片段:
edge_options = webdriver.EdgeOptions()
edge_options.use_chromium = True
edge_options.add_argument("no-sandbox")
edge_options.add_argument("disable-dev-shm-usage")
edge_options.add_argument("disable-features=LockProfileCookieDatabase")
edge_options.add_argument("user-data-dir=C:\\Users\\Username\\AppData\\Local\\Microsoft\\Edge\\User Data\\Default")
driver = webdriver.Edge(options=edge_options)
targeturl = 'https://www.targeturl.com/'
driver.get(targeturl)
我希望它加载我的浏览器配置文件,然后访问目标网址(应在登录后)进行确认它也加载cookie。
我缺少什么吗?
代码的问题在于
user-data-dir
参数的使用方式。需要在路径中添加配置文件的实际文件夹名称,而不仅仅是
User Data\Default
目录。
以下是更正后的代码:
from selenium import webdriver
from selenium.webdriver.edge.options import Options
import os
# 获取当前用户的用户目录
user_data_dir = os.path.expanduser("~") + r"\AppData\Local\Microsoft\Edge\User Data"
# 定义要使用的配置文件文件夹名称
profile_folder = "Profile 1"
edge_options = Options()
edge_options.add_argument("user-data-dir=" + os.path.join(user_data_dir, profile_folder))
edge_options.add_argument("--no-sandbox")
edge_options.add_argument("--disable-dev-shm-usage")
driver = webdriver.Edge(options=edge_options)
targeturl = 'https://www.targeturl.com/'
driver.get(targeturl)
说明:
-
获取用户数据目录:
代码首先使用
os.path.expanduser("~")
获取当前用户的用户目录,然后将其与 Edge 浏览器配置文件的默认路径连接起来。 -
指定配置文件文件夹:
需要将
profile_folder
变量的值替换为想要加载的实际配置文件文件夹的名称。例如,如果想要加载名为“Profile 3”的配置文件,则应将profile_folder
设置为"Profile 3"
。 -
组合路径:
代码使用
os.path.join()
函数将用户数据目录和配置文件文件夹名称组合成一个完整的路径。 -
使用
user-data-dir
参数: 最后,将完整的路径传递给user-data-dir
参数,以便 Edge 浏览器加载指定的配置文件。
通过这种方式,就可以使用 Selenium 4 和 Edge 浏览器加载的个人浏览器配置文件,包括 cookie。
标签:python,python-3.x,selenium-webdriver,cookies,microsoft-edge From: 78845559