Python 3.x 使用GeckoDriverManager().install()在Firefox中运行测试

Python 3.x 使用GeckoDriverManager().install()在Firefox中运行测试,python-3.x,selenium-webdriver,Python 3.x,Selenium Webdriver,我有以下代码在各种浏览器中运行测试。Chrome当然可以在我想要运行这些测试的机器上正常工作,但是Firefox、IE和Edge不能。这样做对吗?我不希望在浏览器更新时每隔两个月就要下载和更改一次文件 def __init__(self, browser: str = TESTING_BROWSER, home: str = BASE_URL): """Hooray for inits.""" if browser.lower() == "ie": web

我有以下代码在各种浏览器中运行测试。Chrome当然可以在我想要运行这些测试的机器上正常工作,但是Firefox、IE和Edge不能。这样做对吗?我不希望在浏览器更新时每隔两个月就要下载和更改一次文件

    def __init__(self, browser: str = TESTING_BROWSER, home: str = BASE_URL):
    """Hooray for inits."""
    if browser.lower() == "ie":
        webdriver.Ie.__init__(self, IEDriverManager().install())
    elif browser.lower() == 'edge':
        webdriver.Edge().__init__(self, EdgeDriverManager().install())
    elif browser.lower() == "firefox":
        webdriver.Firefox.__init__(self, GeckoDriverManager().install())
    else:
        chrome_options = Options()
        if os.environ.get('RUN_HEADLESS') == 'True':
            chrome_options.add_argument('--headless')
            chrome_options.add_argument("--disable-extensions")
            chrome_options.add_argument("--disable-gpu")
            webdriver.Chrome.__init__(self, ChromeDriverManager().install(), chrome_options=chrome_options)
        else:
            webdriver.Chrome.__init__(self, ChromeDriverManager().install())
当我尝试运行Firefox时,会出现以下错误:

NotADirectoryError: [Errno 20] Not a directory: '/Users/me/.wdm/geckodriver/v0.24.0/macos/geckodriver'
我曾尝试将
executable\u path=path添加到geckodriver
,但这也不起作用

所以RTD再次获胜:

webdriver.Firefox.\uuuu init\uuuuuu(self,executable\u path=GeckoDriverManager().install())

对于感兴趣的人,请参阅
webdriver\u manager
的文档