本地使用就可以解决,但是服务器上不行
服务器的谷歌版本是 119.0.6045.123 ,chromedriver 的版本是 119.0.6045.105 ,我本地在 Windows 上都是可以正常运行的,但是 Linux 上就会报下面的异常
org.openqa.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
lc1450 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 谢谢谢谢,这个真的帮大忙了,前几天我就解决问题了,但是忘了回复你了就是
|