0

我有这两个功能:

def get_chromedriver(headless = False):
    import os
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    options = Options()
    options.binary_location = '/usr/bin/google-chrome'
    options.add_argument('user-data-dir=' + os.environ['HOME'] + '/.config/chromedriver')
    options.add_experimental_option('detach', True)
    options.add_experimental_option('excludeSwitches', ['enable-automation'])
    options.add_experimental_option('useAutomationExtension', False)
    options.headless = headless
    driver = webdriver.Chrome(executable_path='/usr/bin/chromedriver', options=options)
    return driver

def get_firefoxdriver(headless = False):
    import os
    from selenium import webdriver
    from selenium.webdriver.firefox.options import Options
    options = Options()
    options.binary_location = '/usr/bin/firefox'
    options.add_argument('user-data-dir=' + os.environ['HOME'] + '/.config/firefoxdriver')
    options.add_experimental_option('detach', True)
    options.add_experimental_option('excludeSwitches', ['enable-automation'])
    options.add_experimental_option('useAutomationExtension', False)
    options.headless = headless
    driver = webdriver.Firefox(executable_path='/usr/bin/geckodriver', options=options)
    return driver

get_chromedriver 函数可以完美运行,但 get_firefoxdriver 不能,它是 get_chromedriver 函数的副本。
如何使 get_firefoxdriver 函数在功能上等同于 get_chromedriver 函数,除了路径、webdriver 和使用的浏览器?

4

1 回答 1

0

Firefox webdriver 没有与 Chrome webdriver 相同的实例方法。我看到在您的 Firefox 驱动程序创建函数中,您正在调用“分离”和“exludeSwitches”选项,但是如果您查看 Firefox文档,您将找不到这些选项,而 Chrome文档中提供了相同的选项。

使用每个驱动程序都有利有弊,并且在每种情况下,解决方案都应与用例相匹配。

于 2021-06-08T21:40:21.507 回答