python - Ubuntu 服务器上的无头 Selenium
问题描述
我目前在 ubuntu 20.04.2 服务器上安装了 selenium,但我无法让它工作,我不确定我在这里缺少什么
这是当前的 python 代码,我已经尝试过使用和不使用以下每个选项
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
firefox_options = webdriver.FirefoxOptions()
firefox_options.add_argument("-headless")
firefox_options.add_argument("--screenshot")
firefox_options.add_argument("--no-sandbox")
firefox_options.add_argument("--disable-dev-shm-usage")
firefox_options.add_argument("-disable-gpu")
browser = webdriver.Firefox(executable_path="./drivers/geckodriver", options=firefox_options)
browser.get('http://www.google.com')
这是python错误代码:
simple.py:11: DeprecationWarning: executable_path has been deprecated, please pass in a Service object
browser = webdriver.Firefox(executable_path="./drivers/geckodriver", options=firefox_options)
Traceback (most recent call last):
File "simple.py", line 11, in <module>
browser = webdriver.Firefox(executable_path="./drivers/geckodriver", options=firefox_options)
File "/usr/lib/python3/dist-packages/selenium/webdriver/firefox/webdriver.py", line 170, in __init__
RemoteWebDriver.__init__(
File "/usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py", line 152, in __init__
self.start_session(capabilities, browser_profile)
File "/usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py", line 249, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/usr/lib/python3/dist-packages/selenium/webdriver/remote/webdriver.py", line 318, in execute
self.error_handler.check_response(response)
File "/usr/lib/python3/dist-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message: Connection refused (os error 111)
这是 geckodriver 日志:
1614163729970 geckodriver INFO Listening on 127.0.0.1:50115
1614163730921 mozrunner::runner INFO Running command: "/snap/bin/firefox" "--marionette" "-headless" "-->
*** You are running in headless mode.
[GFX1-]: glxtest: libpci missing
[GFX1-]: glxtest: Unable to open a connection to the X server
[GFX1-]: glxtest: libEGL initialize failed
[GFX1-]: No GPUs detected via PCI
syslog 与 firefox 没有任何关系
解决方案
如果其他人遇到这个问题,重新安装 Firefox 解决了这个问题
推荐阅读
- javascript - 当javascript加载部分html时,如何进行http请求以获取整个源页面?
- django - 使用 Django Json 字段来减少迁移问题
- flutter - 如何在颤振中在 Math.tex 中设置下一行或自动下一行?
- pytorch - pytorch Dropout:“通道将独立清零”
- c# - 在 ASP.NET MVC 和 C# 中查看模式更新
- nco - 连接每月 modis 数据
- python - 如何在 Flask 中使用上下文对象模式?
- javascript - 未提供身份验证凭据 - Axios
- java - 设备重启后不出现 Android onesignal 推送通知
- javascript - Java 脚本在浏览器关闭前暂停脚本