问题
I'm trying to invoke a firefox browser using Selenium webdriver from below 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()
but it is always throwing an error like below, however this is working for Chrome browser.
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
What am I missing here?
I have also tried upgrading the selenium package using the pip
pip install -U selenium
Additional info: running the Firefox latest version (59.0.2), Python (3.6.5) and Selenium Gecko webdriver (0.20.0). Not sure if anything is needed to help on this.
回答1:
You need to take care of a couple of things as follows :
You need to pass the Key executable_path along with the Value referring to the absolute path of the GeckoDriver through single backslash i.e.
\
along with the raw i.e.r
switch as follows :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()
Clean your Project Workspace through your IDE and Rebuild your project with required dependencies only.
- Use CCleaner tool to wipe off all the OS chores before and after the execution of your Test Suite.
- If your base Web Client version is too old, then uninstall it through Revo Uninstaller and install a recent GA and released version of Web Client.
- Take a System Reboot.
- Execute your
@Test
.
来源:https://stackoverflow.com/questions/49929374/notadirectoryerror-winerror-267-the-directory-name-is-invalid-error-while-inv