Smi*_*ith 6 python selenium chromium python-3.x selenium-chromedriver
我尝试使用--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)
| 归档时间: |
|
| 查看次数: |
1532 次 |
| 最近记录: |