Ok, ich beginne mit der Lösung, es gibt eine für Arm kompilierte Version hier phantomjs-linux-armv6l, auf dem Pi führen Sie die folgenden Befehle aus:
$ cd /tmp
$ wget https://github.com/aeberhardo/phantomjs-linux-armv6l/archive/master.zip
$ unzip master.zip
$ cd phantomjs-linux-armv6l-master
$ bunzip2 *.bz2 && tar xf *.tar
Ich habe hinzugefügt:
sudo cp phantomjs-1.9.0-linux-armv6l/bin/phantomjs /usr/bin
Phantomjs werden also auf deinem Weg sein.
[email protected] ~ $ phantomjs --version
1.9.0
[email protected] ~ $ phantomjs
phantomjs>
Jetzt haben wir das erledigt, Zeit zum Testen:
[email protected] ~ $ cat test.py
#!/usr/bin/python
from selenium import webdriver
driver = webdriver.PhantomJS()
driver.get('http://stackoverflow.com/questions/36314771/how-to-install-phantomjs-for-use-with-python-selenium-on-the-raspberry-pi/36388824#36388824')
a = driver.find_element_by_xpath('//*[@id="question-header"]/h1/a')
print(a.text)
print(driver)
[email protected] ~ $ python test.py
How to install PhantomJS for use with Python Selenium on the Raspberry Pi?
<selenium.webdriver.phantomjs.webdriver.WebDriver (session="b184e110-f9c4-11e5-aede-7f5c42f062d7")>
Aus der FAQ. Ab PhantomJS 1.5 ist es rein kopflos und X11/Xvfb muss nicht mehr ausgeführt werden. .
Ich habe es mit xvfb-run versucht und Exportieren der Anzeige, Verwenden eines Shell-Skripts in init.d, um xvfb zu starten, bin ich etwas weiter gekommen, da ich Iceweasel von Bash aus ohne Kopf ausführen konnte, kein Problem, aber immer noch keine Zigarre, wenn es um Phantomjs und Selen ging. Ich denke, es kann nur zu einer Inkompatibilität zwischen Selenium und der Version von phantomjs kommen, unabhängig davon, dass 1.9.0 und echtes Headless-Browsing viel wünschenswerter sind.
Ich war gerade dabei, eine Toolchain einzurichten und wollte versuchen, sie selbst zu kompilieren, als ich den obigen Link fand. Für alle, die sich für Cross-Compiling interessieren, macht crosstools-ng das Leben viel einfacher.
Ich verwende arm6, es gibt auch eine kompilierte Version für arm7 mit 2.0.0, die Abhängigkeiten sind:
sudo apt-get install flex bison gperf ruby perl libsqlite3-dev libfontconfig1-dev libicu-dev libfreetype6 libssl-dev libpng-dev libjpeg-dev python libX11-dev libxext-dev
Beim Installationsvorgang habe ich die Binärdatei in Dropbox extrahiert:
wget https://www.dropbox.com/s/epj1rji9d239dco/phantomjs
chmod +x phantomjs
sudo cp phantomjs /usr/bin
Der ursprüngliche Github-Link ist phantomjs-2.0.0-armv7