I want to run a Python script using Selenium WebDriver
with PhantomJS
as a headless browser on my Raspberry Pi running Raspbian.
I originally wrote the script in OS X where it works fine. But in trying to make it work on the Raspberry, I'm having problems.
When trying to run the script, I get this error:
raise WebDriverException("Can not connect to the Service %s" % self.path)
selenium.common.exceptions.WebDriverException: Message: Can not connect to the Service /usr/bin/phantomjs
Brief version of the script:
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
user_agent = ("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) " +
"AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36")
dcap = dict(DesiredCapabilities.PHANTOMJS)
dcap["phantomjs.page.settings.userAgent"] = user_agent
serv_args = ["--ignore-ssl-errors=false", "--ssl-protocol=tlsv1",
"--disk-cache=false"]
driver = webdriver.PhantomJS(executable_path="/usr/bin/phantomjs",
desired_capabilities = dcap, service_arguments = serv_args, port=65000)
I have seen other people have problems resembling mine – with varying solutions – most seem to involve building PhantomJS yourself, or clone and install a Github branch adapted for Raspberry (which now is out-of-sync with the main PhantomJS project).
Questions
- Does anyone know how to resolve the problem – and indeed what the problem really is about?
- If the solution involves installing the binaries manually to
/usr/local/bin
or such, how would I do that? The binaries available on the PhantomJS webpage is forlinux-x86
andlinux-i686
, so I'm assuming they won't work on an Raspberry Pi 2 B ARM Cortex A-7 processor. - I have also tried to build PhantomJS myself according to these instructions, but the process froze midway through. The Raspberry also doesn't meet the recommended hardware requirements for building.
Background info
- I am using
Python 2.7.9
- I have created a
virtualenv
and installed all the Python modules in it; e.g.pip install selenium
, and attempt to run the script here - I have installed the latest version of PhantomJS via
sudo apt-get install phantomjs
- I have disabled my
ufw
firewall while testing