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 浏览器时出错的主要内容,如果未能解决你的问题,请参考以下文章