Error: no DISPLAY environment variable specified; Selenium webdriver options have no effect
Error: no DISPLAY environment variable specified; Selenium webdriver options have no effect
我运行在 arm64 ubuntu 20.04 lts 上安装了 python3-selenium。在指定 --headless 参数和 运行ning 这段代码之后:
from selenium import webdriver
opt = webdriver.FirefoxOptions()
opt.add_argument("--headless")
serv = Service("/usr/local/bin/firefox/geckodriver")
driver = webdriver.Firefox(service=serv, firefox_options=opt)
driver.get(site)
我仍然得到错误:
selenium.common.exceptions.WebDriverException: Message: Process unexpectedly closed with status 1
进一步挖掘 geckodriver.log 文件
mozrunner::runner INFO Running command: "/usr/bin/firefox" "--marionette" "-no-remote" "-profile" "/tmp/rust_mozprofilewMNmVf"
Error: no DISPLAY environment variable specified
奇怪的是,我指定的参数 none 在这里 运行。有什么想法吗?
使用与 webdriver.Chrome 完全相同的代码而不是 webdriver.Firefox 是可行的。不幸的是,我需要这个才能与 firefox 一起使用。
要使 Firefox 无头:
opt.headless = True
或
opt.set_headless()
我明白了。显然你应该设置
driver = webdriver.Firefox(service=serv, options=opt)
没有
driver = webdriver.Firefox(service=serv, firefox_options=opt)
奇怪的是,这两个参数在webdriver.Firefox
中都可用
from selenium import webdriver
opt = webdriver.FirefoxOptions()
opt.add_argument("--headless")
serv = Service("/usr/local/bin/firefox/geckodriver")
driver = webdriver.Firefox(service=serv, options=opt)
driver.get(site)
我运行在 arm64 ubuntu 20.04 lts 上安装了 python3-selenium。在指定 --headless 参数和 运行ning 这段代码之后:
from selenium import webdriver
opt = webdriver.FirefoxOptions()
opt.add_argument("--headless")
serv = Service("/usr/local/bin/firefox/geckodriver")
driver = webdriver.Firefox(service=serv, firefox_options=opt)
driver.get(site)
我仍然得到错误:
selenium.common.exceptions.WebDriverException: Message: Process unexpectedly closed with status 1
进一步挖掘 geckodriver.log 文件
mozrunner::runner INFO Running command: "/usr/bin/firefox" "--marionette" "-no-remote" "-profile" "/tmp/rust_mozprofilewMNmVf"
Error: no DISPLAY environment variable specified
奇怪的是,我指定的参数 none 在这里 运行。有什么想法吗?
使用与 webdriver.Chrome 完全相同的代码而不是 webdriver.Firefox 是可行的。不幸的是,我需要这个才能与 firefox 一起使用。
要使 Firefox 无头:
opt.headless = True
或
opt.set_headless()
我明白了。显然你应该设置
driver = webdriver.Firefox(service=serv, options=opt)
没有
driver = webdriver.Firefox(service=serv, firefox_options=opt)
奇怪的是,这两个参数在webdriver.Firefox
中都可用from selenium import webdriver
opt = webdriver.FirefoxOptions()
opt.add_argument("--headless")
serv = Service("/usr/local/bin/firefox/geckodriver")
driver = webdriver.Firefox(service=serv, options=opt)
driver.get(site)