python - 无法调用 Firefox Headless

标签 python headless-browser google-chrome-headless firefox-headless

我想知道为什么会收到以下错误消息以及如何修复它:

Traceback (most recent call last): File "teste.py", line 30, in <\module>

main()

File "teste.py", line 24, in main

driver = connectFirefox(defineOptions())

File "teste.py", line 18, in connectFirefox

driver = webdriver.Firefox(firefox_options=options)

File "/usr/lib/python3.6/site-packages/selenium/webdriver/firefox /webdriver.py", line 125, in init

if options.binary is not None:

AttributeError: 'Options' object has no attribute 'binary'

我的代码:

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

def defineOptions():
    options = Options()
    options.add_argument("--headless")
    return options

def connectChrome(options):
    chromeDriverPath = "/usr/bin/chromedriver"
    driver = webdriver.Chrome(chromeDriverPath, chrome_options=options)
    print("Chrome Headless Browser Invoked")
    return driver

def connectFirefox(options):
    driver = webdriver.Firefox(firefox_options=options)
    print("Firefox Headless Browser Invoked")
    return driver

def main():
    #driver = connectChrome(defineOptions())
    driver = connectFirefox(defineOptions())
    driver.get("https://www.archlinux.org/")
    print("Headless Browser closing")
    driver.quit()
#------------------------------------------------------------------------#

main()

我想做的是编写一段代码,让我可以轻松选择 Chrome 或 Firefox headless。

最佳答案

我解决了我的问题。代码如下:

from selenium import webdriver
from selenium.webdriver.firefox.options import Options as FirefoxOptions
from selenium.webdriver.chrome.options import Options as ChromeOptions

def connectChrome():
    options = ChromeOptions()
    options.add_argument("--headless")
    chromeDriverPath = "/usr/bin/chromedriver"
    driver = webdriver.Chrome(chromeDriverPath, chrome_options=options)
    print("Chrome Headless Browser Invoked")
    return driver

def connectFirefox():
    options = FirefoxOptions()
    options.add_argument("--headless")
    driver = webdriver.Firefox(firefox_options=options)
    print("Firefox Headless Browser Invoked")
    return driver

def main():
    #driver = connectChrome()
    driver = connectFirefox()
    driver.get("https://www.archlinux.org/")
    print("Headless Browser closing")
    driver.quit()
#------------------------------------------------------------------------#
main()

关于python - 无法调用 Firefox Headless,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50414007/

相关文章:

python - 在 Python2.7 中将列表转换为字典的最佳方法是什么

linux - Headless Firefox 和 Geb/Selenium 的登录问题

javascript - 使用 Puppeteer 时等待文本出现

python - Seleniumwire 未记录 chrome headless 模式下的所有请求

python - 用于在 linux 中读取 ncdu 命令结果的 paramiko Python 模块

python - 相当于 MATLAB 元胞数组的 Numpy

Python( Homebrew 程序)在 Sqlite 上返回错误

node.js - 如何修复 puppeteer 中的 'page.target is not a function'?

selenium - 如何检测我网站上的 selenium/webdriver 浏览

docker - 无法建立 TestCafe 到 docker chrome headless 的连接