本地使用就可以解决,但是服务器上不行
服务器的谷歌版本是 119.0.6045.123 ,chromedriver 的版本是 119.0.6045.105 ,我本地在 Windows 上都是可以正常运行的,但是 Linux 上就会报下面的异常
org.opnqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: session not created: Chrome failed to start: exited normally. (session not created: DevToolsActivePort file doesn't exist) (The process started from chrome location /opt/google/chrome/chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.) Build info: version: '4.1.4', revision: '535d840ee2' System info: host: 'VM-0-17-ubuntu', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '4.15.0-206-generic', java.version: '1.8.0_362' Driver info: org.openqa.selenium.chrome.ChromeDriver
我去搜索引擎查了下这个异常,基本都是说谷歌浏览器的版本和 chromedriver 版本对不上的问题,但是我这个版本已经是最能对得上的了,完全切合的 chromedriver 版本我真找不到
这个问题卡了我挺久了,我不知道咋整所以来问问,看看有没有大佬能救下
![]() | 1 yzding 2023-11-12 16:29:14 +08:00 via iPhone 使用 headless 参数 |
2 sanjay128 2023-11-12 17:58:06 +08:00 版本对不上的问题。等两天,等 choromedriver 更新到 119.0.6045.123 。或者下载旧版本的 chrome 和 chromedriver 。 两者必须版本一致才行。 |
3 mekingname 2023-11-12 18:04:59 +08:00 这是因为你的服务器没有桌面,Chrome 起不来导致的问题。你可以在服务器上面安装 Xvfb ,它可以创建一个假桌面,让 Selenium 可以用有头模式来运行。然后使用 Xvfb 来启动代码就可以了。 你可以看我的这篇文章: https://mp.weixin.qq.com/s/U-o58Bi0B7kMocwxqlptfA |
![]() | 4 wzwwzw 2023-11-12 21:30:00 +08:00 试试 playwright ,playwright 在开发环境上简单很多,不需要下载 chromedriver 之类的东西。 |
5 CoderLife 2023-11-12 22:50:41 +08:00 用 xvfb |
![]() | 6 atx 2023-11-13 00:02:11 +08:00 走 CDP 把 |
![]() | 7 PiCpo 2023-11-13 01:18:51 +08:00 无头模式 |
![]() | 8 defunct9 2023-11-13 06:42:31 +08:00 via iPhone 当初配了半天才搞定。需要你对 linux 足够熟悉 |
9 macaodoll 2023-11-13 08:28:14 +08:00 via Android Selenium 官方有 docker 容器 |
10 PikaTQL 2023-11-13 08:43:17 +08:00 赞同楼上,用容器万事大吉 |
![]() | 11 aosan926 2023-11-13 09:04:22 +08:00 Docker +1 , 用 Selenium Grid ,可以不用配置桌面环境,https://github.com/SeleniumHQ/docker-selenium |
12 C0nvN3t 2023-11-13 10:09:07 +08:00 options.add("--headless") 试试? |
![]() | 13 privil 2023-11-13 11:46:02 +08:00 @mekingname #3 确实可以跑,就是 Selenium 相关的代码 API 改动了 |
![]() | 14 vialon17 2023-11-13 12:03:25 +08:00 --disable-extensions --disable-dev-shm-usage --no-sandbox --user-data-dir=./data/chrome_data/ --remote-debugging-port=30667 看起来没加 devtool 端口,最新的 selenium 不管 driver 其实也可以跑,不需要添加 executable_path 参数。 当然我这边用的 python selenium 。 |
15 UKnowMe 2023-11-13 17:11:01 +08:00 试下:webdriver-manager 库 |
16 tiRolin OP @mekingname 谢谢谢谢,这个真的帮大忙了,前几天我就解决问题了,但是忘了回复你了就是 |