Amazon Linux 2环境下Chrome 114启动崩溃(Segfault)及Selenium自动化执行失败问题求助
Amazon Linux 2环境下Chrome 114启动崩溃(Segfault)及Selenium自动化执行失败问题求助
我目前在AWS EC2的Amazon Linux 2(Karoo)实例上,基于Selenium WebDriver配合无头Chrome运行自动化测试。但升级到Chrome 114稳定版后,ChromeDriver一直提示Chrome启动崩溃,完全跑不起来测试。
以下是测试执行时的日志输出:
======= starting test SeleniumTest.testChromeDriverOnGoogle() ======= 13:04:42.Jul INFO org.example.TestConfig.getEnvironment() - environment: DEV 13:04:42.Jul INFO org.example.TestConfig.getHeadless() - headless: true 13:04:42.Jul INFO org.example.TestConfig.getBrowserName() - browserName: chrome 13:04:42.Jul INFO org.example.TestConfig.getBrowserVersion() - browserVersion: 114 13:04:42.Jul INFO org.example.TestConfig.getChromeBinary() - chromeBinary: /opt/google/chrome/google-chrome 13:04:42.Jul INFO org.example.TestConfig.getWindowSize() - windowSize: 1200x720 13:04:42.Jul INFO i.github.bonigarcia.wdm.WebDriverManager.resolveDriverVersion() - Using chromedriver 114.0.5735.90 (resolved driver for Chrome 114) 13:04:42.Jul INFO i.github.bonigarcia.wdm.WebDriverManager.exportDriver() - Exporting webdriver.chrome.driver as /home/runner/.cache/selenium/chromedriver/linux64/114.0.5735.90/chromedriver 13:04:42.Jul INFO org.example.SeleniumTest.getChromeDriver() - headless: true 13:04:42.Jul INFO org.example.SeleniumTest.getChromeDriver() - chromeBinary: /opt/google/chrome/google-chrome 13:04:42.Jul INFO org.example.SeleniumTest.getChromeDriver() - chromeOptions: Capabilities {browserName: chrome, goog:chromeOptions: {args: [--remote-allow-origins=*, --allow-insecure-localhost, --start-maximized, --disable-gpu, --disable-dev-shm-usage], binary: /opt/google/chrome/google-c..., extensions: []}} Jul 05, 2023 1:04:42 PM org.openqa.selenium.remote.service.DriverService$Builder getLogOutput INFO: Driver logs no longer sent to console by default; https://www.selenium.dev/documentation/webdriver/drivers/service/#setting-log-output ======= ending test SeleniumTest.testChromeDriverOnGoogle() ======= Error: org.mms.SeleniumTest.testChromeDriverOnGoogle -- Time elapsed: 0.225 s <<< ERROR! org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: unknown error: Chrome failed to start: crashed. (unknown error: DevToolsActivePort file doesn't exist) (The process started from chrome location /opt/google/chrome/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.) Host info: host: 'ip-10-55-20-37.ec2.internal', ip: '10.55.20.37' Build info: version: '4.10.0', revision: 'c14d967899' System info: os.name: 'Linux', os.arch: 'amd64', os.version: '4.14.294-220.533.amzn2.x86_64', java.version: '17.0.7' Driver info: org.openqa.selenium.chrome.ChromeDriver Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, goog:chromeOptions: {args: [--remote-allow-origins=*, --allow-insecure-localhost, --start-maximized, --disable-gpu, --disable-dev-shm-usage], binary: /opt/google/chrome/google-c..., extensions: []}}]}] at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:140) ...
我直接在命令行尝试启动Chrome,也出现了问题:
sh-4.2$ cat /etc/system-release-cpe cpe:2.3:o:amazon:amazon_linux:2 sh-4.2$ /opt/google/chrome/google-chrome --version Google Chrome 114.0.5735.198 sh-4.2$ /opt/google/chrome/google-chrome -h Segmentation fault sh-4.2$ /opt/google/chrome/google-chrome --headless https://google.com [0705/125426.171854:ERROR:socket.cc(120)] recvmsg: Connection reset by peer (104) Trace/breakpoint trap
我还尝试了各种参数组合,比如:
sh-4.2$ /opt/google/chrome/google-chrome --headless=new --disable-extensions --disable-gpu --disable-sandbox --disable-dev-shm-usage https://google.com [0705/125611.372504:ERROR:socket.cc(120)] recvmsg: Connection reset by peer (104) Trace/breakpoint trap
另外我也试过Chrome 115 beta版,但还是会间歇性崩溃,有时候还关不掉——看起来和ChromeDriver 114的交互也有问题。
有没有人遇到过类似的问题(Amazon Linux 2基于RH/Fedora 7),并且找到了解决方案?
如果没有的话,有没有办法获取旧版本的Chrome(比如Chrome 112)?
备注:内容来源于stack exchange,提问作者fijiaaron
相关产品推荐
相关产品推荐

