2

I have a project that requires me to run Selenium. For this I need webdriver to interact with browsers.

I have a Raspberry Pi 3 running the latest Raspbian. Currently I was only able to get Chromium 56 and Firefox ESR 45.

However the webdriver do not work with those version. Geckodriver needs at least something above Firefox 50 and chromedriver also seems to have its problems with Chromium 56, I assume I would need an actual Chrome and not Chromium. (webdrivers).

This is the situation, now I have several questions.

  • What is the reason that I can not install the latest Firefox? Is it because of the armv7l-architecture or is it because of Raspbian? Would it work if I install another Linux distribution?
  • Alternatively, do you know a geckodriver, chromedriver and Selenium version that would work with Firefox ESR 45 and Chromium 56?
  • Do you have another solution for my problem? The goal is to get Java-written Selenium code running. It does not matter which browser is used to achieve this.
5
  • I'm sorry I'm using the answer tab to respond but i don't have enough rep to comment :( I'm fairly new to the Pi so this may be a dumb question but how were you able to take the arm7 version of the geckodriver and turn it into an executable for selenium to use? I also tried the Chromedriver but could not get it working. Sorry again for using Answer to comment. Information on this topic is few and far between and difficult to find resources. Any help is appreciated.
    – FlickFlack
    Jun 1, 2017 at 15:50
  • @FlickFlack I'm not quite sure what your problem is. I just downloaded the linked driver with the said version, nothing more, it simply worked. In my Java-Selenium it could look kinda like this pastebin.com/FmhEdVF1. Hope that helped, else you may add a bit more information.
    – Zabuzard
    Jun 2, 2017 at 19:38
  • Could you be more specific about "Chromedriver seems to have its problems with Chromium 56"
    – Zimano
    Aug 15, 2017 at 10:04
  • @Zimano Sorry its too long ago, I don't remember the exact error messages nor have them at hand. However it did not start, new ChromeDriver(...) did not work and threw some exceptions. I think it could not correctly connect to Chromium or something like that. Its probably because I did not use a driver for armv7l because they don't provide them but as seen in the answer I found someone that managed to build the driver for armv7l.
    – Zabuzard
    Aug 15, 2017 at 18:30
  • @Zabuza Thanks! I was looking into a similar error and wanted to know what errors you were getting :)
    – Zimano
    Aug 16, 2017 at 7:14

4 Answers 4

2

Okay after 2 days I got it working. My working snapshot is as follows:

  • Raspberry Pi 3B
  • Rasbian version April 2017 (Jessie)
  • Selenium 3.4 for Java (Download)
  • Firefox ESR 45
    • Geckodriver v0.15.0 for arm7hf (Download)
  • Chromium 56
    • Chromedriver v2.21 for armv7l (Download)

The build for the chromedriver is unofficial, they do not provide armv7l builds.

1

Since resources on this topic are pretty scarce I decided to list what I did to my Pi for anyone that may be lost, as I once was. Here's what I did:

Type these commands into the command prompt:

sudo apt-get update

sudo pip install pyvirtualdisplay

(This is for running the Pi headless. I don't think it's required, but recommended for future projects)

sudo pip install selenium

Now download this arm7 Chrome Webdriver:

Download (credit to Zabuza's post. Wouldn't have found this without him)

After downloaded, extract to wherever you want in the Pi. Note: Where necessary in your code, make sure you put the correct address to the Chrome driver

Put this last command into the command prompt:

sudo apt-get install chromium-browser

After all this you should be OK to run any selenium code with the Pi.

1

I was having the same issues on my Raspberry, getting Selenium to work due to the complications of an outdated webdriver with the current browser.

For Chrome on the Pi, you do indeed Chromedriver v2.21 for armv7l as @Zabuza pointed out. His download works great.

However, the latest version of the chromium-browser (65.0.3325.181) on Raspbian 9.4 via NOOBS 2.8.2 won't do the trick.

You'll get an endless connection error: failed to establish a new connection [errno 111] connection refused etc no matter what browser/driver combo you use.

Finding and/or building an older version of Chromium (like 56) proved complicated. So I just ended up pulling down the second most recent version of NOOBS (v2_8_1) released on 04-24-2018 and started fresh. Worked like a charm.

It comes pre-loaded with Chromium 60.0.3112.89 which plays well with Chromedriver v2.21

Hope this helps someone!

0

After some day's trying to make de Geckodriver work I can say, the solution by Zabuza works for Python also.

But note, for the moment I did not get the latest version of the "Geckodriver v0.18.0 for arm7hf" to work with Firefox ESR 45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.