How can I set up a Selenium Python environment for Firefox?
I am using Firefox 50, Selenium 3, Python 3.5. I tried with many things binary and copying the geckodriver in the environment variable PATH, etc.
How can I set up a Selenium Python environment for Firefox?
I am using Firefox 50, Selenium 3, Python 3.5. I tried with many things binary and copying the geckodriver in the environment variable PATH, etc.
The testing machine should have Selenium v. 3.0.2, Firefox v. 51.0.1 (latest version) and geckodriver v. 0.14. If you are using Linux, please do the following steps:
[Look up the latest release on GitHub (or from the API) and replace the wget link with that. Downloading and installing an outdating release may result in "buggy" behaviour.]
apt-get update
apt-get install firefox
pip3 install selenium==3.0.2
wget https://github.com/mozilla/geckodriver/releases/download/vX.XX.0/geckodriver-vX.XX.0-linuxXX.tar.gz -O /tmp/geckodriver.tar.gz \
&& tar -C /opt -xzf /tmp/geckodriver.tar.gz \
&& chmod 755 /opt/geckodriver \
&& ln -fs /opt/geckodriver /usr/bin/geckodriver \
&& ln -fs /opt/geckodriver /usr/local/bin/geckodriver
Select the version for your operating system from the available compressed pre-built binaries.
Here is an example to run:
from selenium import webdriver
driver = webdriver.Firefox()
driver.get('http://google.com')
print(driver.title)
driver.quit()
As far as I understand, you want to develop in Python, using the Selenium library and work with the Firefox webdriver.
pip install selenium
or some IDEs like PyCharm propose to install libraries, just import Selenium)In Windows install Python from: https://www.python.org/downloads/
Then run pip install from the command line: pip install selenium
Download the Gecko/Chrome/Internet Explorer driver and add the driver.exe path to the PATH environment variable. So the need to set up the path while running Selenium driver.Firefox() / driver.Chrome() method.
If you are working on Ubuntu and the latest firefox. You may find some issues since firefox is bundled now in snap.
To resolve the issue with driver not being able to connect to the firefox, you will need to use driver bundled with snap.
I bundled an ready to go example here: https://github.com/beliaev-maksim/firefox-selenium
However, for quick access here is the content of conftest.py for quickly setup a driver fixture
import pytest
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.firefox.service import Service
@pytest.fixture(scope='session')
def driver(request):
"""Set up webdriver fixture."""
options = Options()
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
service = Service(executable_path="firefox.geckodriver")
driver = webdriver.Firefox(options=options, service=service)
driver.set_window_size(1920, 1080)
driver.maximize_window()
driver.implicitly_wait(10)
yield driver
driver.quit()