Using Selenium on Raspberry Pi headless

0
0

This is my first time trying to run Selenium on a raspberry pi using the Iceweasel browser.
I tried a simple test this evening

# 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()

the error I get back at runtime is:

=====================================================================
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"

As I understand it from what I have read online is that Iceweasel acts as a Firefox replacement on the pi, and many have claimed that all you have to do is call the firefox webdriver to use it.
Am I just doing this incorrectly?

Thank you for your time.

  • You must to post comments
0
0

This works for me on Raspberry Pi headless:

Installation:

sudo apt-get install python-pip iceweasel xvfb
sudo pip install pyvirtualdisplay selenium

Code:

from selenium import webdriver
from pyvirtualdisplay import Display
display
= Display(visible=0, size=(800, 600))
display
.start()
driver
= webdriver.Firefox()
  • You must to post comments
Showing 1 result
Your Answer
Post as a guest by filling out the fields below or if you already have an account.
Name*
E-mail*
Website