我在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之外,错误消息没有告诉我太多。如何在服务器上的浏览器的无头模式下运行脚本?
1条答案
按热度按时间dced5bon1#
我通过将以下行添加到
options
解决了这个问题