python - ChromeDriver 假设 Chrome 在传递配置文件参数时崩溃了

标签 python windows selenium google-chrome selenium-chromedriver

如果任何 Chrome 进程正在运行并且运行以下代码,Stack Overflow 将永远加载:

options = webdriver.ChromeOptions()
options.add_argument("user-data-dir=C:\\Users\\RvBVakama\\AppData\\Local\\Google\\Chrome\\User Data")
options.add_argument('--profile-directory=Profile 1')
w = webdriver.Chrome('C:/Program Files (x86)/Google/Chrome/Application/chromedriver.exe', options=options)

w.get("https://stackoverflow.com/")

如果存在任何 Chrome 进程并且运行以下代码,它将在片刻后加载堆栈溢出:

w = webdriver.Chrome('C:/Program Files (x86)/Google/Chrome/Application/chromedriver.exe')

w.get("https://stackoverflow.com/")

唯一的区别是第一个代码块使用配置文件 1 启动 Chrome。

这是来自 block 一的错误日志:

[13768:7324:1216/205746.092:ERROR:cache_util_win.cc(19)] Unable to move the cache: 0
[13768:7324:1216/205746.093:ERROR:cache_util.cc(140)] Unable to move cache folder C:\Users\RvBVakama\AppData\Local\Google\Chrome\User Data\ShaderCache\GPUCache to C:\Users\RvBVakama\AppData\Local\Google\Chrome\User Data\ShaderCache\old_GPUCache_000
[13768:7324:1216/205746.094:ERROR:disk_cache.cc(184)] Unable to create cache
[13768:7324:1216/205746.095:ERROR:shader_disk_cache.cc(622)] Shader Cache Creation failed: -2
Traceback (most recent call last):
  File "c:\Users\RvBVakama\.vscode\extensions\ms-python.python-2018.12.1\pythonFiles\ptvsd_launcher.py", line 45, in <module>
    main(ptvsdArgs)
  File "c:\Users\RvBVakama\.vscode\extensions\ms-python.python-2018.12.1\pythonFiles\lib\python\ptvsd\__main__.py", line 265, in main
    wait=args.wait)
  File "c:\Users\RvBVakama\.vscode\extensions\ms-python.python-2018.12.1\pythonFiles\lib\python\ptvsd\__main__.py", line 256, in handle_args
    run_main(addr, name, kind, *extra, **kwargs)
  File "c:\Users\RvBVakama\.vscode\extensions\ms-python.python-2018.12.1\pythonFiles\lib\python\ptvsd\_local.py", line 52, in run_main
    runner(addr, name, kind == 'module', *extra, **kwargs)
  File "c:\Users\RvBVakama\.vscode\extensions\ms-python.python-2018.12.1\pythonFiles\lib\python\ptvsd\runner.py", line 32, in run
    set_trace=False)
  File "c:\Users\RvBVakama\.vscode\extensions\ms-python.python-2018.12.1\pythonFiles\lib\python\ptvsd\_vendored\pydevd\pydevd.py", line 1283, in run
    return self._exec(is_module, entry_point_fn, module_name, file, globals, locals)
  File "c:\Users\RvBVakama\.vscode\extensions\ms-python.python-2018.12.1\pythonFiles\lib\python\ptvsd\_vendored\pydevd\pydevd.py", line 1290, in _exec
    pydev_imports.execfile(file, globals, locals)  # execute the script
  File "c:\Users\RvBVakama\.vscode\extensions\ms-python.python-2018.12.1\pythonFiles\lib\python\ptvsd\_vendored\pydevd\_pydev_imps\_pydev_execfile.py", line 25, in execfile
    exec(compile(contents+"\n", file, 'exec'), glob, loc)
  File "c:\Users\RvBVakama\Desktop\tet.py", line 9, in <module>
    w = webdriver.Chrome('C:/Program Files (x86)/Google/Chrome/Application/chromedriver.exe', options=options)
  File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 81, in __init__
    desired_capabilities=desired_capabilities)
  File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 157, in __init__
    self.start_session(capabilities, browser_profile)
  File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 252, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: crashed
  (unknown error: DevToolsActivePort file doesn't exist)
  (The process started from chrome location C:\Program Files (x86)\Google\Chrome\Application\chrome.exe is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
  (Driver info: chromedriver=2.45.615291 (ec3682e3c9061c10f26ea9e5cdcf3c53f3f74387),platform=Windows NT 6.1.7601 SP1 x86_64)

注意最后一行。

我不确定为什么 chromedriver 认为 Chrome 已崩溃。

最佳答案

好的,修复方法是转到 C:\Users\NAME\AppData\Local\Google\Chrome 并复制您的“用户数据”文件夹并为其指定另一个名称。 然后只需将“user-data-dir”参数设置为新文件夹即可。

# set up the chrome options to launch with the AUTO profile
options = webdriver.ChromeOptions()
options.add_argument("user-data-dir=C:\\Users\\RvBVakama\\AppData\\Local\\Google\\Chrome\\User Data AUTO")
options.add_argument('--profile-directory=Profile 1')
# start chrome with the driver
w = webdriver.Chrome('C:/Program Files (x86)/Google/Chrome/Application/chromedriver.exe', options=options)

enter image description here

关于python - ChromeDriver 假设 Chrome 在传递配置文件参数时崩溃了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53801158/

相关文章:

java - Tensorflow Lite Android 对象检测 - 移动 SSD 模型预计恰好有 4 个输出,发现有 8 个

Python doctests/sphinx : style guide, 如何使用它们并拥有可读的代码?

python - 如何在同一目录或子目录中导入类?

c++ - 发生内存不足错误时怎么办?

windows - XP Embedded 启动时串行端口计数仪发出咔嗒声

linux - 带有 PhantomJS 的 WebDriverJS 可以在 OSX 上运行,但不能在 Linux 上运行

python - 使用列号中的条件使用 python 和 xlwt 导出到 Excel

c++ - 调用 IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER 时句柄无效

python - len(browser.find_elements_by_class_name ('foo' )) 给出 0

python - 如何使用动态类值处理 Selenium 中的非选择下拉菜单