Chrome 无法在Linux服务器上运行Selenium 4.13.0和Python 3

bvjveswy  于 2023-10-14  发布在  Go
关注(0)|答案(1)|浏览(179)

我在Python中运行Selenium脚本没有任何问题。

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.page_load_strategy = 'eager'
options.add_argument('--headless=new')
options.add_argument('--disable-gpu')
driver = webdriver.Chrome(options=options)

我的Chrome版本是116.0.5845.179。从selenium 4.10.0开始,驱动程序管理器完全集成,并将根据需要静默下载驱动程序。无需再手动安装Chrome驱动程序。所以,我没有Chrome驱动程序安装在我的笔记本电脑上。
但是,当我在我的Linux服务器上做同样的事情时,浏览器无法启动。Linux服务器是Ubuntu,没有图形用户界面。我在服务器上安装了版本为117.0.5938.149的Chrome。我在运行脚本时收到以下错误:

raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: 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/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)

当我尝试在服务器上的终端上运行“google-chrome”时,我收到以下错误:

[34407:34407:1008/225549.976145:ERROR:zygote_host_impl_linux.cc(100)] Running as root without --no-sandbox is not supported. See https://crbug.com/638180.

除了我不能运行Chrome之外,错误消息没有告诉我太多。如何在服务器上的浏览器的无头模式下运行脚本?

dced5bon

dced5bon1#

我通过将以下行添加到options解决了这个问题

options.add_argument('--no-sandbox')

相关问题