如何通过 Python 打开 Chrome 配置文件

Posted

技术标签:

【中文标题】如何通过 Python 打开 Chrome 配置文件【英文标题】:How to open a Chrome Profile through Python 【发布时间】:2018-08-22 12:46:04 【问题描述】:

我一直在编写的脚本运行良好。我刚刚添加了该选项,以便它可以使用此代码在 chrome 上打开配置文件。

options = webdriver.ChromeOptions
browser = webdriver.Chrome(executable_path=r"C:\Users\princess\AppData\Local\Programs\Python\Python36-32\chromedriver.exe", chrome_options=options)
options.add_argument(r'user-data-dir=C:\Users\princess\AppData\Local\Google\Chrome\User Data')
options.add_argument('--profile-directory=Profile 1')

使用时,我收到此错误代码。

C:\Users\Princess\Desktop>CHBO.py
Traceback (most recent call last):
  File "C:\Users\Princess\Desktop\CHBO.py", line 12, in <module>
    browser = webdriver.Chrome(executable_path=r"C:\Users\princess\AppData\Local\Programs\Python\Python36-32\chromedriver.exe", chrome_options=options)
  File "C:\Users\Princess\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 59, in __init__
    desired_capabilities = options.to_capabilities()
TypeError: to_capabilities() missing 1 required positional argument: 'self'

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

您可以使用options = Options()options = webdriver.ChromeOptions() 代替options = webdriver.ChromeOptions

否则,您将指向一个对象(即webdriver.ChromeOptions),而不是通过包含所需的括号来创建该对象的实例

【讨论】:

它确实打开了带有我想要的配置文件的浏览器,但没有打开站点并在编写代码时导航。我在 CMD 中得到了这个 :ERROR:cache_util.cc(134)] 无法将缓存文件夹 C:\Users\princess\AppData\Local\Google\Chrome\User Data\ShaderCache\GPUCache 移动到 C:\Users\ Princess\AppData\Local\Google\Chrome\User Data\ShaderCache\old_GPUCache_000 [30224:11480:0314/012119.198:ERROR:disk_cache.cc(169)] 无法创建缓存 [30224ERROR:shader_disk_cache.cc(601)] 着色器缓存创建失败:-2 [30224:11480:0314/012119.342:ERROR:browser_gpu_channel_host_factory.cc(120)] 无法启动 GPU 进程。在现有浏览器会话中创建新窗口。 然后它说: raise exception_class(message, screen, stacktrace) selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: crashed @OtakuWiz 这是您问题的答案。您的新问题的答案是错误消息Created new window in existing browser session 的这一部分。在运行 python 代码之前,您必须关闭 Chrome。 see here【参考方案2】:

创建打开一个新的Chrome配置文件,您需要执行以下步骤:

打开Chrome浏览器,点击侧边菜单并点击设置,其中url@987654324 @ 打开。 在人物部分,点击管理其他人,弹出一个弹出窗口。 点击添加人员,提供人名,选择图标,保留项目为此创建桌面快捷方式用户选中并点击添加按钮。 您的新个人资料已创建。 新个人资料的快照SeLeNiUm

现在桌面图标将创建为 SeLeNiUm - Chrome 从桌面图标 SeLeNiUm - Chrome 的属性中获取配置文件目录的名称。例如--profile-directory="配置文件 2"

获取系统中profile-directory的绝对路径,如下:

C:\\Users\\Otaku_Wiz\\AppData\\Local\\Google\\Chrome\\User Data\\Profile 2

现在通过 Options 的实例传递 profile-directory 的值,使用 add_argument() 方法和键 user-data-dir如下:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument("user-data-dir=C:\\Users\\AtechM_03\\AppData\\Local\\Google\\Chrome\\User Data\\Profile 2")
driver = webdriver.Chrome(executable_path=r'C:\path\to\chromedriver.exe', chrome_options=options)
driver.get("https://www.google.co.in")

执行你的Test

观察 Chrome 使用 Chrome 配置文件 初始化为 SeLeNiUm

【讨论】:

这部分我该怎么办? C:\\Users\\Otaku_Wiz\\AppData\\Local\\Google\\Chrome\\User Data\\Profile 2 视窗!哎呀!如果您要在 Linux 上查找配置文件,请转到 /home/user/.config/google-chrome。对我来说,它创建了一个“配置文件 1”。如果您使用的是 Mac,请转到 Users//Library/Application Support/Google/Chrome(有人告诉我) 这和他问的无关

以上是关于如何通过 Python 打开 Chrome 配置文件的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 Selenium 的 --user-data-dir 参数打开 Chrome 配置文件

如何在 Selenium Webdriver Python 3 中使用 Chrome 配置文件

手动打开一个chrome网页,想用python+selenium操作这个网页上的控件怎么办

如何在 Python 中使用 Selenium 打开 chrome 开发者控制台?

Python爬虫的谷歌Chrome F12如何抓包分析?案例详解

Python爬虫的谷歌Chrome F12如何抓包分析?案例详解