web-dev-qa-db-ja.com

NotADirectoryError:[WinError 267] SeleniumからFirefoxを呼び出す際のディレクトリ名が無効なエラーPython

python code ..

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

ここで何が欠けていますか?

また、pipを使用してSeleniumパッケージをアップグレードしてみました

pip install -U Selenium

追加情報: Firefoxの最新バージョン(59.0.2)、Python(3.6.5)、およびSelenium Gecko Webdriver(0.20.0)を実行しています。これを助けるために必要です。

4
CodeLeak

次の2つの点に注意する必要があります。

  • Keyexecutable_pathValue単一のバックスラッシュを介してGeckoDriverの絶対パスを参照する、つまり\をそのまま、つまりrスイッチとともに次のように指定します。

    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()
    
  • クリーンyourプロジェクトワークスペースからyour[〜#〜] ide [〜#〜]およびRebuild必要な依存関係のみを使用してプロジェクトを作成します。

  • CCleaner ツールを使用して、テストスイートの実行前後にすべてのOSの雑用を一掃します
  • ベースWebクライアントのバージョンが古すぎる場合は、 Revo Uninstaller を使用してアンインストールし、最近GAおよびWebクライアントのリリースバージョン
  • System Rebootを実行します。
  • @Test
11
DebanjanB