如何在DrissionPage ChromiumPage中按名称切换多个Chrome配置文件?
在DrissionPage的ChromiumPage中切换Chrome配置文件
你的代码问题在于直接覆盖page变量却未正确关闭旧实例,导致要么资源冲突,要么达不到切换效果。以下是两种场景下的正确实现方式:
场景1:同时运行多个不同配置文件的浏览器
如果需要同时打开多个独立配置的Chrome窗口,为每个配置创建独立的ChromiumPage实例即可:
from DrissionPage import ChromiumOptions, ChromiumPage # 启动第一个配置文件的浏览器 co1 = ChromiumOptions() co1.set_user(user='event_name1') page1 = ChromiumPage(co1) page1.get('https://example.com') # 启动第二个配置文件的浏览器 co2 = ChromiumOptions() co2.set_user(user='event_name2') page2 = ChromiumPage(co2) page2.get('https://google.com') # 后续可分别操作两个页面
场景2:切换当前浏览器的配置文件(关闭旧的,打开新的)
如果需要替换当前使用的配置文件,必须先关闭旧的浏览器实例,再用新配置启动:
from DrissionPage import ChromiumOptions, ChromiumPage # 启动第一个配置 co = ChromiumOptions() co.set_user(user='event_name1') page = ChromiumPage(co) page.get('https://example.com') # 关闭当前浏览器 page.quit() # 切换到第二个配置 co = ChromiumOptions() co.set_user(user='event_name2') page = ChromiumPage(co) page.get('https://google.com')
关键说明
set_user()会为每个用户名称创建独立的Chrome数据目录,确保各个配置文件(书签、Cookie、扩展等)完全隔离,互不干扰。- 切换配置时必须调用
quit()关闭旧实例,否则DrissionPage可能复用已有浏览器进程,导致新配置不生效。
内容的提问来源于stack exchange,提问作者Osama Bin Ghazanfar
相关产品推荐
相关产品推荐

