在Cpanel上运行Selenium失败,chromedriver意外退出错误码-5求助
Chromedriver意外退出(状态码-5)问题解决
环境信息
- Selenium版本:4.8.2
- 操作系统:CentOS v7.9.2009 STANDARD standard
- Cpanel版本:108.0.14
使用的代码
chrome_options = webdriver.ChromeOptions() chrome_options.add_argument('--no-sandbox') chrome_options.add_argument('--headless') chrome_options.add_argument('--disable-dev-shm-usage') chrome_options.add_argument("--disable-dev-shm-using") chrome_options.add_argument("disable-infobars") chrome_options.add_argument("--remote-debugging-port=8833") driver = webdriver.Chrome(service=ChromiumService(ChromeDriverManager(chrome_type=ChromeType.CHROMIUM).install()), options=chrome_options)
遇到的错误
selenium.common.exceptions.WebDriverException: Message: Service /home/vplaid/.wdm/drivers/chromedriver/linux64/111.0.5563/chromedriver unexpectedly exited. Status code was: -5
解决方法
- 清理无效参数:代码里
--disable-dev-shm-using是错误参数,直接删除;disable-infobars缺少开头的--,改为--disable-infobars。无效参数会干扰Chrome启动流程。 - 指定浏览器二进制路径:CentOS环境下,WebDriver Manager可能无法自动识别Chromium/Chrome的安装路径,手动添加:
chrome_options.binary_location = "/usr/bin/chromium-browser" # 若为Chrome则用"/usr/bin/google-chrome" - 确保浏览器与Driver版本匹配:错误中Driver版本为111.0.5563,检查系统中安装的Chromium/Chrome主版本号是否一致。版本不匹配时,要么升级浏览器,要么指定Driver版本安装:
driver = webdriver.Chrome(service=ChromiumService(ChromeDriverManager(chrome_type=ChromeType.CHROMIUM, version="111.0.5563").install()), options=chrome_options) - 补充无头模式必要参数:CentOS下无头模式需要额外参数保证稳定运行:
chrome_options.add_argument('--disable-gpu') chrome_options.add_argument('--window-size=1920x1080') chrome_options.add_argument('--headless=new') # Selenium 4.8+推荐使用新版无头模式 - 检查目录权限:确认运行代码的用户对
/home/vplaid/.wdm/目录拥有读写权限,必要时调整目录权限:chmod -R 755 /home/vplaid/.wdm/ - 移除不必要的远程调试端口:如果不需要远程调试功能,删除
--remote-debugging-port=8833参数,避免端口冲突或权限限制。
修正后的示例代码
from selenium import webdriver from selenium.webdriver.chrome.service import ChromiumService from webdriver_manager.chrome import ChromeDriverManager from webdriver_manager.core.utils import ChromeType chrome_options = webdriver.ChromeOptions() chrome_options.add_argument('--no-sandbox') chrome_options.add_argument('--headless=new') chrome_options.add_argument('--disable-dev-shm-usage') chrome_options.add_argument('--disable-infobars') chrome_options.add_argument('--disable-gpu') chrome_options.add_argument('--window-size=1920x1080') # 根据实际浏览器安装路径调整 chrome_options.binary_location = "/usr/bin/chromium-browser" driver = webdriver.Chrome(service=ChromiumService(ChromeDriverManager(chrome_type=ChromeType.CHROMIUM).install()), options=chrome_options)
内容的提问来源于stack exchange,提问作者Muhammad Daniyal
相关产品推荐
相关产品推荐

