Ok je vais commencer par la solution, il y a une version compilée pour arm ici phantomjs-linux-armv6l, sur le pi lancez les commandes suivantes :
$ 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
J'ai ajouté :
sudo cp phantomjs-1.9.0-linux-armv6l/bin/phantomjs /usr/bin
Alors phantomjs sera sur votre chemin.
[email protected] ~ $ phantomjs --version
1.9.0
[email protected] ~ $ phantomjs
phantomjs>
Maintenant que c'est fait, il est temps de tester :
[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")>
De la faq. À partir de PhantomJS 1.5, il est purement sans tête et il n'est plus nécessaire d'exécuter X11/Xvfb. .
J'ai essayé d'utiliser xvfb-run et en exportant l'affichage, en utilisant un script shell dans init.d pour démarrer xvfb, je suis allé un peu plus loin en pouvant exécuter iceweasel depuis bash sans tête sans problème mais toujours pas de cigare quand il s'agissait de phantomjs et de sélénium. Je pense que cela peut simplement se résumer à une incompatibilité entre le sélénium et la version de phantomjs, même si la version 1.9.0 et la véritable navigation sans tête sont beaucoup plus souhaitables.
J'étais en train de mettre en place une chaîne d'outils et j'allais essayer de me compiler quand j'ai trouvé le lien ci-dessus, pour toute personne intéressée par la compilation croisée, crosstools-ng rend la vie beaucoup plus facile.
J'utilise un arm6, il existe également une version compilée pour arm7 utilisant 2.0.0, les dépendances sont :
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
La procédure d'installation, j'ai extrait le binaire vers dropbox :
wget https://www.dropbox.com/s/epj1rji9d239dco/phantomjs
chmod +x phantomjs
sudo cp phantomjs /usr/bin
Le lien github d'origine est phantomjs-2.0.0-armv7