--user-data-dir选项
我尝试使用--user-data-dir选项打开Chromedriver,但出现以下错误 . 我已经在很多方面试了一个月,仍然没有线索 . 请帮我!
错误信息是:
Traceback(最近一次调用最后一次):文件“C:\ Users \ owner \ Desktop \ MouseWithoutBorders \ AutoCheckin.py”,第15行,在driver = 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行, in init desired_capabilities = desired_capabilities)在init self.start_session中的文件“C:\ Users \ owner \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py”,第156行(capabilities,browser_profile)文件“C:\ Users \ owner \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py”,第251行,在start_session response = self中 . 执行(Command.NEW_SESSION,参数)文件“C:\ Users \ owner \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py”,第320行,执行自我.error_handler.check_response(响应)文件“C:\ Users \ owner \ AppData \ Local \ Programs \ Python \ Python37 \ lib \ site-packages \ selenium \ webdriver \ remote \ errorhandler.py”,第242行,在check_response中引发exception_class(message,screen,stacktrace)selenium .common.exceptions.WebDriverException:消息:未知错误:无法删除旧的devtools端口文件 . 也许C:\ Users \ owner \ AppData \ Local \ Google \ Chrome \中的给定user-data-dir仍然附加到正在运行的Chrome或Chromium进程 . (驱动程序信息:chromedriver = 2.41.578737(49da6702b16031c40d63e5618de03a32ff6c197e),platform = 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)
我发现此错误来自铬代码参考:https://chromium.googlesource.com/chromium/src/+/master/chrome/test/chromedriver/chrome_launcher.cc https://peter.sh/experiments/chromium-command-line-switches/
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."));