当我尝试使用--user-data-dir
让当前用户使用Selify启动Chrome时,我收到一个错误,如下所示:
File "C:\Program Files (x86)\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Program Files (x86)\Python\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: user data directory is already in use, please specify a unique value for --user-data-dir argument, or don't use --user-data-dir
如何修复此错误?
6条答案
按热度按时间yshpjwxd1#
此错误消息...
...表示ChromeDriver无法使用指定的
user data directory
启动新的Chrome Browser会话,因为它已在使用中。此错误可按如下方式重现:
分析
错误堆栈跟踪清楚地报告访问被拒绝,因为程序无法将缓存文件夹
..\ShaderCache\GPUCache
移动到..\ShaderCache\old_GPUCache_000
。因此,创建缓存失败,随后创建Shader缓存创建失败。虽然这些问题引发了InvalidArgumentException
,但仍然能够在现有的Chrome浏览器会话中打开一个新窗口。虽然抛出了错误,但新的Chrome窗口仍然会被启动,但仍然会附加到已经打开的Chrome会话中,但新窗口不能由WebDriver示例控制。因此,您可以在URL栏中看到
data:,
。解决方案
你需要处理几件事:
user-data-dir
设置为用户数据**,因为它仍被您手动启动的其他Chrome进程锁定。user-data-dir
设置为..\User Data\Default以访问*默认Chrome配置文件。1tuwyuhd2#
最简单和最容易的修复方法是:清除现有打开的Chrome驱动程序:以下是步骤:在任务栏的搜索窗口中输入任务管理器到Spotlight Search/,或使用其他方式访问任务管理器。当任务管理器向导/窗口弹出时,搜索chromeDriver,右击它,然后点击“结束任务”。就这样。这不是一个永恒的解决办法。一旦你多次打开Chrome浏览器,你就必须做同样的步骤来避免这个问题。希望这有助于我寻找一个稳定的解决方案。
dauxcl2d3#
在尝试跳过登录过程时也遇到了同样的问题,解决方案是关闭已经打开的浏览器。
xuo3flqw4#
正如Tes answer提到的,我打开了Windows任务管理器,并关闭了所有的chrome.exe和chromedriver.exe进程,它起作用了!
我使用以下配置使用我的Chrome个人资料打开了Google Chrome:
gwbalxhn5#
据我所知,在使用配置文件时,不允许打开多个同名的配置文件。
This帮助我解决了关于 selenium 的
user data directory is already in use
问题。我希望这对你也有帮助。um6iljoc6#
System.setProperty(“Webdriver.chrome.drive”,“C://Users//Mhamed//Desktop//chromedriver.exe”);