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.
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.
@Test
.Selenium is looking for the directory, not the executable. You have to point to the directory where geckodriver.exe is placed. Do not include geckodriver.exe in the string argument.
Instead of
driver = webdriver.Firefox("C:\\selenium\\mozilla\\geckodriver.exe")
Do
driver = webdriver.Firefox("C:\\selenium\\mozilla")
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With