Selenium Chrome报错DevToolsActivePort不存在及chrome not reachable求助
Selenium Chrome 启动报错问题解决
问题描述
编写网站测试脚本时,原本运行正常,后续出现报错:DevToolsActivePort file doesn't exist。添加参数options.add_argument("--remote-debugging-port=9222")尝试修复后,又出现新报错:chrome not reachable,多种方案尝试后未解决。
代码示例
from selenium import webdriver # options options = webdriver.ChromeOptions() options.add_argument("--no-sandbox") options.add_argument("user-agent=Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:84.0) Gecko/20100101 Firefox/84.0") options.add_argument("--disable-blink-features=AutomationControlled") options.add_argument("--remote-debugging-port=9222") options.headless = True driver = webdriver.Chrome( executable_path="/home/adfs_bot/chromedriver", options=options ) driver.get('https://google.com/')
报错信息
Traceback (most recent call last): File "my_script1.py", line 22, in <module> options=options File "/home/<usr>/my_script/venvADFSBot/lib64/python3.6/site-packages/selenium/webdriver/chrome/webdriver.py", line 81, in __init__ desired_capabilities=desired_capabilities) File "/home/<usr>/my_script/venvADFSBot/lib64/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__ self.start_session(capabilities, browser_profile) File "/home/<usr>/my_script/venvADFSBot/lib64/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session response = self.execute(Command.NEW_SESSION, parameters) File "/home/<usr>/my_script/venvADFSBot/lib64/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute self.error_handler.check_response(response) File "/home/<usr>/my_script/venvADFSBot/lib64/python3.6/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 /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.) Traceback (most recent call last): File "my_script1.py", line 22, in <module> options=options File "/home/<usr>/my_script/venvADFSBot/lib64/python3.6/site-packages/selenium/webdriver/chrome/webdriver.py", line 81, in __init__ desired_capabilities=desired_capabilities) File "/home/<usr>/my_script/venvADFSBot/lib64/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__ self.start_session(capabilities, browser_profile) File "/home/<usr>/my_script/venvADFSBot/lib64/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session response = self.execute(Command.NEW_SESSION, parameters) File "/home/<usr>/my_script/venvADFSBot/lib64/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute self.error_handler.check_response(response) File "/home/<usr>/my_script/venvADFSBot/lib64/python3.6/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. (chrome not reachable) (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
环境信息
- Google Chrome版本:106.0.5249.119
- ChromeDriver版本:106.0.5249.61
- 操作系统:CentOS 8 (RedHat)
解决方案
1. 严格匹配Chrome与ChromeDriver版本
当前Chrome版本为106.0.5249.119,ChromeDriver为106.0.5249.61,小版本号不一致会导致兼容性问题。下载对应Chrome版本的ChromeDriver(106.0.5249.119)替换现有文件,确保版本完全对齐。
2. 优化Chrome启动参数
修改参数列表,解决端口冲突、资源不足等问题:
from selenium import webdriver options = webdriver.ChromeOptions() options.add_argument("--no-sandbox") options.add_argument("--disable-dev-shm-usage") # 解决CentOS /dev/shm空间不足问题 options.add_argument("user-agent=Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:84.0) Gecko/20100101 Firefox/84.0") options.add_argument("--disable-blink-features=AutomationControlled") options.add_argument("--remote-debugging-port=0") # 自动分配可用端口,避免冲突 options.add_argument("--window-size=1920,1080") # 无头模式下指定窗口大小,保证渲染正常 options.binary_location = "/usr/bin/google-chrome" # 明确指定Chrome二进制路径 options.headless = True driver = webdriver.Chrome( executable_path="/home/adfs_bot/chromedriver", options=options ) driver.get('https://google.com/')
3. 修复权限与清理残留进程
- 给ChromeDriver添加执行权限:
chmod +x /home/adfs_bot/chromedriver - 清理残留的Chrome/ChromeDriver进程:
执行完后重新运行脚本。pkill -f chrome pkill -f chromedriver
内容的提问来源于stack exchange,提问作者depak
相关产品推荐
相关产品推荐

