selenium.common.exceptions.InvalidArgumentException:消息:无效参数:用户数据目录已在使用真正的 Chrome 浏览器时出错
Posted
技术标签:
【中文标题】selenium.common.exceptions.InvalidArgumentException:消息:无效参数:用户数据目录已在使用真正的 Chrome 浏览器时出错【英文标题】:selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: user data directory is already in use error with real Chrome Browser 【发布时间】:2022-01-19 22:34:27 【问题描述】:我正在尝试在我的真实 Chrome 中打开网站,而不是驱动程序但我得到了错误列表,但它没有打开 url** 这是我的代码
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
s = Service("C:\\Users\\Administrator\\Desktop\\chromedriver.exe")
options = webdriver.ChromeOptions()
options.add_argument("--user-data-dir=C:\\Users\\Administrator\\AppData\\Local\\Google\\Chrome\\User Data")
options.add_argument('--profile-directory=Default')
driver = webdriver.Chrome(service=s, chrome_options=options)
driver.get("https://www.instagram.com")
类似的错误:
C:\Users\Administrator\Desktop\Py Sele\Sele.py:11: DeprecationWarning: use options instead of chrome_options
driver = webdriver.Chrome(service=s, chrome_options=options)
Opening in existing browser session.
Traceback (most recent call last):
File "C:\Users\Administrator\Desktop\Py Sele\Sele.py", line 11, in <module>
driver = webdriver.Chrome(service=s, chrome_options=options)
File "C:\Program Files\Python39\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 70, in __init__
super(WebDriver, self).__init__(DesiredCapabilities.CHROME['browserName'], "goog",
File "C:\Program Files\Python39\lib\site-packages\selenium\webdriver\chromium\webdriver.py", line 93, in __init__
RemoteWebDriver.__init__(
File "C:\Program Files\Python39\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 268, in __init__
self.start_session(capabilities, browser_profile)
File "C:\Program Files\Python39\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 359, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "C:\Program Files\Python39\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 424, in execute
self.error_handler.check_response(response)
File "C:\Program Files\Python39\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 247, 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
Stacktrace:
Backtrace:
【问题讨论】:
“但我得到了错误列表”我们可以看到它们吗? 【参考方案1】:此错误消息...
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
...暗示--user-data-dir
已在使用中。
您的主要问题是您已经为手动浏览打开了一个打开的 Google Chrome 浏览器会话。
您的代码块中没有此类错误。但是,您似乎正在以 Administrator
的身份执行程序。但是,
Chrome 在启动期间崩溃的一个常见原因是在 Linux 上以
root
用户 (administrator
) 运行 Chrome。虽然可以通过在创建 WebDriver 会话时传递--no-sandbox
标志来解决此问题,但不支持并且强烈建议不要使用此类配置。您需要将环境配置为以普通用户身份运行 Chrome。
解决方案
在以用户身份执行测试之前,例如Administrator,请确保您没有使用同一用户(即 Administrator)打开任何 Chrome 浏览器窗口。
【讨论】:
我忘了谢谢。以上是关于selenium.common.exceptions.InvalidArgumentException:消息:无效参数:用户数据目录已在使用真正的 Chrome 浏览器时出错的主要内容,如果未能解决你的问题,请参考以下文章