Mithilfe von Selen auf Raspberry Pi headless
Dies ist meine erste Zeit mit dem Versuch zu laufen Selen auf einem raspberry pi mit der Iceweasel-browser.
Ich habe versucht, einen einfachen test an diesem Abend
# selenium test for /mod2
# verify: posts, and page name
class TestMod2Selenium(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox()
def test_validate_page_elements(self):
driver = self.driver
driver.get("127.0.0.1:5000/mod2")
self.assertIn("Home - microblog", driver.title)
def tearDown(self):
self.driver.close()
den Fehler bekomme ich zurück, die zur Laufzeit:
=====================================================================
ERROR: test_validate_page_elements (__main__.TestMod2Selenium)
----------------------------------------------------------------------
Traceback (most recent call last):
File "test.py", line 58, in setUp
self.driver = webdriver.Firefox()
File "/home/pi/naughton_python/flask/flask/local/lib/python2.7/site-packages/selenium/webdriver/firefox/webdriver.py", line 59, in __init__
self.binary, timeout),
File "/home/pi/naughton_python/flask/flask/local/lib/python2.7/site-packages/selenium/webdriver/firefox/extension_connection.py", line 47, in __init__
self.binary.launch_browser(self.profile)
File "/home/pi/naughton_python/flask/flask/local/lib/python2.7/site-packages/selenium/webdriver/firefox/firefox_binary.py", line 61, in launch_browser
self._wait_until_connectable()
File "/home/pi/naughton_python/flask/flask/local/lib/python2.7/site-packages/selenium/webdriver/firefox/firefox_binary.py", line 100, in _wait_until_connectable
self._get_firefox_output())
WebDriverException: Message: "The browser appears to have exited before we could connect. The output was: ERROR: ld.so: object 'x_ignore_nofocus.so' from LD_PRELOAD cannot be preloaded: ignored.\nERROR: ld.so: object 'x_ignore_nofocus.so' from LD_PRELOAD cannot be preloaded: ignored.\nERROR: ld.so: object 'x_ignore_nofocus.so' from LD_PRELOAD cannot be preloaded: ignored.\nError: no display specified\n"
Wie ich es verstehe, von dem, was ich gelesen habe online ist, dass Iceweasel agiert als Firefox-Ersatz auf dem pi, und viele haben behauptet, dass alle Sie tun müssen ist, rufen Sie die firefox-webdriver, es zu benutzen.
Bin ich gerade dabei dies falsch?
Vielen Dank für Ihre Zeit.
InformationsquelleAutor der Frage Lombax | 2014-07-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies funktioniert für mich auf Raspberry Pi headless:
Installation:
Code:
InformationsquelleAutor der Antwort fivef
Ich bin mir nicht sicher, warum es geschieht, aber, dass die Fehler, die Sie bekommen hat zu tun mit der Firefox-Treiber mithilfe von "native events" für Benutzer-Interaktion-simulation (Tastatur, Maus, etc).
Einige technische details und Hintergründe/Fragen mit native Veranstaltungen finden Sie unter:
https://code.google.com/p/selenium/wiki/NativeEventsOnLinux
Viele Selen-Nutzer (mich eingeschlossen) finden, dass "native events" problematisch sind in vielen Situationen, und es ist nur einfacher/sicherer "synthetisiert events" statt. Synthetisiert Veranstaltungen emulieren Benutzer-Interaktion über JavaScript.
so, deaktivieren Sie die native-events (indem Sie die Profil-Eigenschaft) im Treiber, und Sie sollten sich die Vergangenheit, die Fehler.
Beispiel:
InformationsquelleAutor der Antwort Corey Goldberg