I would like to set up the Raspberry Pi as a client that exclusively runs FireFox as a client in a Selenium grid.
Has anyone tried and got this to work?
Are there any tips or pitfalls that I will need to be aware of?
Raspberry Pi Stack Exchange is a question and answer site for users and developers of hardware and software for Raspberry Pi. It only takes a minute to sign up.
Sign up to join this communityYou either need to have enable X or better you can run Selenium webdriver on Raspberry Pi in headless mode with xvfb
. For this you need the following:
Install required APT packages:
sudo apt-get update
sudo apt-get install iceweasel
sudo apt-get install xvfb
Install required pip
packages:
sudo pip install selenium
sudo pip install PyVirtualDisplay
sudo pip install xvfbwrapper
Install geckodriver:
wget https://github.com/mozilla/geckodriver/releases/download/v0.23.0/geckodriver-v0.23.0-arm7hf.tar.gz
tar -xvzf geckodriver*
chmod +x geckodriver
sudo mv geckodriver /usr/local/bin/
Then start with the following minimal Python:
from pyvirtualdisplay import Display
from selenium import webdriver
display = Display(visible=0, size=(1024, 768))
display.start()
driver = webdriver.Firefox()
driver.get('http://raspberrypi.stackexchange.com/')
driver.quit()
display.stop()
I got Raspberry and Selenium working using
Python, Selenium Firefox driver, and Iceweasel
so if you sudo apt-get install iceweasel, then you have a firefox-based browser that will work with the Selenium firefox driver.
Would this help you?
Following on from @Techraf you need to install the geckodriver.
Here is the latest version supported for Rasp Pi:
https://github.com/mozilla/geckodriver/releases/tag/v0.23.0
Download geckodriver-v0.23.0-arm7hf.tar.gz
This is the latest release supporting arm7hf, which I believe is required for Selenium on Rasp Pi.
You need to inform your script to load the geckodriver. Like so
from selenium import webdriver
driver = webdriver.Firefox(executable_path = '/home/pi/Downloads/geckodriver')
driver.get('http://raspberrypi.stackexchange.com/')