По сути, у меня есть java-программа, которая получает данные с веб-сайтов с помощью Selenium (Chromedriver).
Эта же java-программа работает без ошибок на windows, при этом у меня ошибок не было. В CentOS 7 это работает, но выдает несколько ошибок и это странно.
Ошибки:
Exception in thread "Thread-6" org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: unknown error: Chrome failed to start: exited abnormally.
(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 C hrome has crashed.)
Host info: host: 'instance-20221128-2304', ip: '10.0.0.105'
Build info: version: '4.6.0', revision: '79f1c02ae20'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '3.10.0-1160.76.1.el7.x86_64', java.version: '1.8.0_352'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, goog:chromeOptions: {args: [--headless], exten sions: []}}], desiredCapabilities=Capabilities {browserName: chrome, goog:chromeOptions: {args: [--headless], extensions: [ ]}}}]
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:146)
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:101)
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:67)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:156)
at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:167)
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:142)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:541)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:242)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:157)
at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:101)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:81)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:70)
at org.hinoob.bot.BangerFM.fetch(BangerFM.java:55)
at org.hinoob.bot.BangerFM.lambda$startLoop$0(BangerFM.java:26)
at java.lang.Thread.run(Thread.java:750)`
Я следовал этому руководству, чтобы установить вещи: https://www.usessionbuddy.com/post/How-To-Install-Selenium-Chrome-On-Centos-7/
Моя версия Google Chrome в CentOS: Гугл Хром 107.0.5304.121
Я еще ничего не пробовал, так как не знаю, что попробовать. Я ожидал, что это будет работать так же, как в Windows.




Селен 4.6.0 выпущен! selenium Представляем Selenium Manager Теперь вам не нужно добавлять путь к драйверу или что-то еще. Теперь селен автоматически обновляет драйвер.
В вашем случае я предполагаю, что эта проблема связана с проблемами совместимости драйверов Chrome.
Обновите версию селена. Если это проект maven, добавьте следующую зависимость
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.6.0</version>
</dependency>
А затем удалите системное свойство, если вы добавили путь к chromedriver вручную. Надеюсь, ваша проблема будет решена.
Еще одна контрольная точка, которая вызывает проблемы с открытым браузером
Ссылка https://www.selenium.dev/blog/2022/introduction-selenium-manager/