Jac*_*son 11 python selenium google-chrome invalidargumentexception selenium-chromedriver
当我尝试让--user-data-dir
当前用户使用 Selenium 启动 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
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个错误?
Deb*_*anB 11
这个错误信息...
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
Run Code Online (Sandbox Code Playgroud)
...暗示ChromeDriver无法使用指定的来启动新的Chrome 浏览器会话,user data directory
因为它已经在使用中。
可以按如下方式重现此错误:
代码块:
from selenium import webdriver
import getpass
options = webdriver.ChromeOptions()
options.add_argument("start-maximized")
options.add_argument(r"--user-data-dir=C:\Users\{}\AppData\Local\Google\Chrome\User Data".format(getpass.getuser()))
driver = webdriver.Chrome(options=options, executable_path=r'C:\WebDrivers\chromedriver.exe')
driver.get("https://www.google.com/")
Run Code Online (Sandbox Code Playgroud)完成相关回溯:
[12148:21412:0204/035557.731:ERROR:cache_util_win.cc(21)] Unable to move the cache: Access is denied. (0x5)
[12148:21412:0204/035557.731:ERROR:cache_util.cc(141)] Unable to move cache folder C:\Users\Soma Bhattacharjee\AppData\Local\Google\Chrome\User Data\ShaderCache\GPUCache to C:\Users\Soma Bhattacharjee\AppData\Local\Google\Chrome\User Data\ShaderCache\old_GPUCache_000
[12148:21412:0204/035557.731:ERROR:disk_cache.cc(178)] Unable to create cache
[12148:21412:0204/035557.731:ERROR:shader_disk_cache.cc(605)] Shader Cache Creation failed: -2
Opening in existing browser session.
Traceback (most recent call last):
File "C:\Users\Soma Bhattacharjee\Desktop\Debanjan\PyPrograms\yandex_ru.py", line 18, in <module>
driver = webdriver.Chrome(options=options, executable_path=r'C:\WebDrivers\chromedriver.exe')
File "C:\Python\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 81, in __init__
desired_capabilities=desired_capabilities)
File "C:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 157, in __init__
self.start_session(capabilities, browser_profile)
File "C:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 252, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "C:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\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
Run Code Online (Sandbox Code Playgroud)错误堆栈跟踪清楚地抱怨访问被拒绝,因为程序无法将缓存文件夹移动..\ShaderCache\GPUCache
到..\ShaderCache\old_GPUCache_000
. 因此创建缓存失败,随后创建着色器缓存创建失败。虽然这些问题引发了InvalidArgumentException
但在现有Chrome 浏览器会话中强制能够打开一个新窗口。
尽管抛出了错误,但新的 Chrome 窗口仍会启动,但仍与已打开的Chrome会话保持连接,但WebDriver实例无法控制新窗口。因此,您会data:,
在网址栏中看到。
您需要注意以下几点:
user-data-dir
为用户数据,因为它仍被您手动启动的其他 Chrome 进程锁定。
user-data-dir
为..\User Data\Default以访问默认 Chrome 配置文件。
小智 5
最简单和最容易的解决方法是;清除现有打开的 chrome 驱动程序:步骤如下:在任务栏的搜索窗口中的 Spotlight 搜索/中键入任务管理器或使用其他方式访问任务管理器。当任务管理器向导/窗口弹出时,搜索 chromedriver,右键单击它,然后单击“结束任务”。就是这样。这不是一个永恒的解决方案。一旦您多次打开 Chrome 浏览器,您就必须执行相同的步骤来避免该问题。希望这对我寻找稳定的修复有所帮助。
归档时间: |
|
查看次数: |
22533 次 |
最近记录: |