无法调用无头火狐浏览器

8
我想了解为什么我收到以下错误消息以及如何修复它:
追溯(最近的调用最先)(最近的调用最后): 文件“teste.py”,第30行,在中 主要() 文件“teste.py”,第24行,在主文件中 driver = connectFirefox(defineOptions()) 文件“teste.py”,第18行,在connectFirefox中 driver = webdriver.Firefox(firefox_options=options) 文件“/usr/lib/python3.6/site-packages/selenium/webdriver/firefox /webdriver.py”,第125行,在init中 如果options.binary不为None: 属性错误:“Options”对象没有属性“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 模式。

可能相关:https://dev59.com/z2Uo5IYBdhLWcg3w2CaJ - user1531971
1个回答

16

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

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()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接