NotDirectoryError:[WinError 267]通过Selenium Python调用Firefox时,目录名无效错误

NotDirectoryError:[WinError 267]通过Selenium Python调用Firefox时,目录名无效错误,python,selenium,firefox,selenium-webdriver,geckodriver,Python,Selenium,Firefox,Selenium Webdriver,Geckodriver,我正试图从下面的python代码中使用SeleniumWebDriver调用firefox浏览器 from selenium import webdriver # Initializing the WebDriver for Firefox browser driver = webdriver.Firefox("C:\\selenium\\mozilla\\geckodriver.exe") driver.set_page_load_timeout(30) driver.maximize_wi

我正试图从下面的python代码中使用SeleniumWebDriver调用firefox浏览器

from selenium import webdriver

# Initializing the WebDriver for Firefox browser
driver = webdriver.Firefox("C:\\selenium\\mozilla\\geckodriver.exe")
driver.set_page_load_timeout(30)
driver.maximize_window()
driver.get("https://www.google.com/")

# Closing the reference
driver.quit()
但它总是抛出如下错误,不过这对Chrome浏览器有效

Traceback (most recent call last):
  File "C:/Python/Practice/FirefoxSample.py", line 8, in <module>
    driver = webdriver.Firefox("C:\\selenium\\mozilla\\geckodriver.exe")
  File "C:\Python\venv\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 139, in __init__
    firefox_profile = FirefoxProfile(firefox_profile)
  File "C:\Python\venv\lib\site-packages\selenium\webdriver\firefox\firefox_profile.py", line 78, in __init__
    ignore=shutil.ignore_patterns("parent.lock", "lock", ".parentlock"))
  File "C:\Python\Python36-32\lib\shutil.py", line 309, in copytree
    names = os.listdir(src)
NotADirectoryError: [WinError 267] The directory name is invalid: 'C:\\selenium\\mozilla\\geckodriver.exe'

Process finished with exit code 1

其他信息:运行Firefox最新版本(59.0.2)、Python(3.6.5)和Selenium Gecko webdriver(0.20.0)。不确定是否需要任何帮助。

您需要注意以下几点:

from selenium import webdriver

driver = webdriver.Firefox(executable_path=r'C:\selenium\mozilla\geckodriver.exe')
driver.set_page_load_timeout(30)
driver.get("https://www.google.com/")
driver.quit()
  • 您需要通过单个反斜杠,即
    \
    和原始开关,即
    r
    传递键可执行路径以及引用GeckoDriver绝对路径的值,如下所示:

    from selenium import webdriver
    
    driver = webdriver.Firefox(executable_path=r'C:\selenium\mozilla\geckodriver.exe')
    driver.set_page_load_timeout(30)
    driver.get("https://www.google.com/")
    driver.quit()
    
  • 通过IDE清理项目工作区,并仅使用所需的依赖项重建项目

  • 在执行测试套件之前和之后,使用该工具清除所有操作系统杂务
  • 如果您的基本Web客户端版本太旧,请通过卸载它并安装最新的GA和Web客户端发布版本
  • 重新启动系统
  • 执行
    @测试

Selenium正在查找目录,而不是可执行文件。 您必须指向放置geckodriver.exe的目录。不要在字符串参数中包含geckodriver.exe

而不是

driver = webdriver.Firefox("C:\\selenium\\mozilla\\geckodriver.exe")


我还尝试过使用pip升级selenium包。我还尝试过使用pip
pip安装-U selenium
升级selenium包,同时运行Firefox最新版本(59.0.2)、Python(3.6.5)和selenium Gecko webdriver(0.20.0)。不确定是否需要任何帮助。
driver = webdriver.Firefox("C:\\selenium\\mozilla")