Python Selenium --user-data-dir选项错误:无法删除旧的devtools端口文件

Smi*_*ith 6 python selenium chromium python-3.x selenium-chromedriver

--user-data-dir选项

我尝试使用--user-data-dir选项打开Chromedriver,但出现以下错误。我已经以多种方式尝试了1个月,但仍然没有任何线索。请帮我!

错误信息是:

追溯(最近一次通话):文件“ C:\ Users \ owner \ Desktop \ MouseWithoutBorders \ AutoCheckin.py”,第15行,驱动程序= webdriver.Chrome(executable_path = r“ C:\ Users \ owner \ Desktop \ MouseWithoutBorders \ chromedriver.exe”,chrome_options = opts)文件“ C:\ Users \ owner \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ selenium \ webdriver \ chrome \ webdriver.py”,第75行,在初始化 initial_capabilities = desired_capabilities)文件“ C:\ Users \ owner \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ Selenium \ webdriver \ remote \ webdriver.py”,第156行,位于init中 self.start_session(功能,浏览器配置文件)start_session响应中的第251行“ C:\ Users \ owner \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py” = self.execute(Command.NEW_SESSION,参数)文件“ C:\ Users \ owner \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py”,第320行,在执行self.error_handler.check_response(response)文件“ C:\ Users \ owner \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ selenium \ webdriver \ remote \ errorhandler.py”中,第242行,在check_response引发exception_class(消息,屏幕,堆栈跟踪) selenium.common.exceptions.WebDriverException:消息:未知错误:无法删除旧的devtools端口文件。也许位于C:\ Users \ owner \ AppData \ Local \ Google \ Chrome \的给定用户数据目录仍附加到正在运行的Chrome或Chromium进程。 (驱动程序信息:chromedriver = 2.41.578737(49da6702b16031c40d63e5618de03a32ff6c197e),平台= Windows NT 10.0.17738> x86_64)

而我的python测试代码是:

import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.chrome.options import Options
from myidez import ID, PW

opts = webdriver.ChromeOptions()
opts.add_argument('--start-maximized')
opts.add_argument('--headless')
opts.add_argument('--no-sandbox')
opts.add_argument('--disable-dev-shm-usage')
opts.add_argument('--disable-gpu')
opts.add_argument("--user-data-dir= C:\\Users\\owner\\AppData\\Local\\Google\\Chrome\\User Data")
driver = webdriver.Chrome(executable_path=r"./chromedriver.exe", chrome_options=opts)
Run Code Online (Sandbox Code Playgroud)

我发现此错误来自铬代码参考:https : //chromium.googlesource.com/chromium/src/+/master/chrome/test/chromedriver/chrome_launcher.cc https://peter.sh/experiments/chromium-命令行开关/

Status RemoveOldDevToolsActivePortFile(const base::FilePath& user_data_dir) {
  base::FilePath port_filepath = user_data_dir.Append(kDevToolsActivePort);
  // Note that calling DeleteFile on a path that doesn't exist returns True.
  if (base::DeleteFile(port_filepath, false)) {
    return Status(kOk);
  }
  return Status(
      kUnknownError,
      std::string("Could not remove old devtools port file. Perhaps "
                  "the given user-data-dir at ") +
          user_data_dir.AsUTF8Unsafe() +
          std::string(" is still attached to a running Chrome or Chromium "
                      "process."));
Run Code Online (Sandbox Code Playgroud)

小智 8

--user-data-dir= C:\\Users\\owner\\AppData\\Local\\Google\\Chrome\\User Data
Run Code Online (Sandbox Code Playgroud)

你有这个字符串,这是错误的,当我在路径中使用双引号或空格时,我遇到了同样的问题,将其删除。错误“无法删除旧的devtools端口文件”表示在这种情况下,Chrome从您获取了无效路径。删除空格后:

--user-data-dir=C:\\Users\\owner\\AppData\\Local\\Google\\Chrome\\User Data
Run Code Online (Sandbox Code Playgroud)

  • 来自带有 Selenium Side Runner 的 Windows,我是否必须以某种方式引用此内容才能不被切断空间? (2认同)