1

我已经打开了谷歌浏览器,我正在做自己的工作。我正在尝试使用存储在我的C:\\Users\\Himanshu Poddar\\AppData\\Local\\Google\\Chrome\\User Dataddirectory 中的默认配置运行 Selenium Chrome 驱动程序。

但是当我使用这个默认配置文件启动 Chrome 时,我的函数永远不会返回,我认为这是由于我正在打开另一个 Chrome 窗口。因为我可以在我的工作 Chrome 窗口上看到一条警报,上面写着“chrome 由测试软件控制”。

这是我尝试过的

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument("user-data-dir=C:\\Users\\Himanshu Poddar\\AppData\\Local\\Google\\Chrome\\User Data")
chrome_path = r"C:\Users\Himanshu Poddar\Desktop\chromedriver.exe"
# This never returns
wd = webdriver.Chrome(chrome_path, chrome_options=options)

最后执行的语句 webdriver.Chrome 永远不会返回并将其打印到控制台

[5972:6048:0614/210846.434:ERROR:cache_util_win.cc(21)] Unable to move the cache: 0
[5972:6048:0614/210846.435:ERROR:cache_util.cc(141)] Unable to move cache folder C:\Users\Himanshu Poddar\AppData\Local\Google\Chrome\User Data\ShaderCache\GPUCache to C:\Users\Himanshu Poddar\AppData\Local\Google\Chrome\User Data\ShaderCache\old_GPUCache_000
[5972:6048:0614/210846.435:ERROR:disk_cache.cc(185)] Unable to create cache
[5972:6048:0614/210846.435:ERROR:shader_disk_cache.cc(623)] Shader Cache Creation failed: -2
Opening in existing browser session.

预期:

一个不同的 Chrome 实例将使用相同的默认配置文件运行,该配置文件独立于我正在处理的当前 chrome 窗口。

请注意,我尝试了我为这个问题得到的建议,但没有一个对我有用。

编辑

这个问题与我的有点相似,但不包含此问题的解决方案。

4

1 回答 1

1

感谢@pcalkins,我能够找到问题的答案。第一步是克隆您的用户配置文件或其中的任何内容,C:\\Users\\Himanshu Poddar\\AppData\\Local\\Google\\Chrome\\User Data并用某个名称重命名。就我而言,我只是用用户数据重命名了它 - 复制。下一步涉及从我们的克隆副本中删除我们当前使用谷歌浏览器(在其他窗口中)的用户的文件。最后运行代码为

from selenium.webdriver.chrome.options import Options
from selenium import webdriver
chrome_path = r"C:\Users\Himanshu Poddar\Desktop\chromedriver.exe"
options = Options()
# new clone copy of user data supplied
options.add_argument("user-data-dir=C:\\Users\\Himanshu Poddar\\AppData\\Local\\Google\\Chrome\\User Data - copy")
wd = webdriver.Chrome(chrome_path, chrome_options=options)

请注意,在这种情况下不需要更新我的驱动程序,但使用最新稳定版本的软件始终是一个好习惯,因为该软件知道您可能会遇到什么依赖问题。

虽然我已经克隆了配置文件,然后将其提供给我的函数。任何不需要生成副本并仅通过包含、调整、扭曲任何参数来解决它的答案都将被接受。

于 2019-06-14T17:39:40.387 回答