2014-02-02 2 views
1

Я только начинаю играть с UDOO (одноплатным компьютером, похожим на Raspberry Pi). У меня есть код, который я пытаюсь получить, чтобы какой-нибудь тестовый код работал над ним без везения.Python: Selenium не может найти свободный порт на UDOO

Следующий код работает на моем ноутбуке Ubuntu.

#!/usr/bin/env python 

import timeit 


def test(): 
    from selenium import webdriver 
    from selenium.webdriver.common.keys import Keys 
    from pyvirtualdisplay import Display 
    import time 

    display = Display(visible=0, size=(800, 600)) 
    display.start() 

    browser = webdriver.Firefox() 
    browser.get('http://www.google.com') 
    q = browser.find_element_by_name('q') 
    q.send_keys("python") 
    q.send_keys(Keys.ENTER) 

    time.sleep(4) 

    results = browser.find_elements_by_class_name('g') 
    for result in results: 
     try: 
      print '-' * 80 
      print result.text 
     except: 
      pass 

    browser.close() 
    display.stop() 
    return 0 

print(timeit.timeit("test()", setup="from __main__ import test", number=10)) 

Однако, когда я запускаю тот же файл на UDOO борту, это получить следующее сообщение об ошибке:

Traceback (most recent call last): 
    File "./selenium_test.py", line 36, in <module> 
    test() 
    File "./selenium_test.py", line 16, in test 
    browser = webdriver.Firefox() 
    File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", line 59, in __init__ 
    self.binary, timeout), 
    File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/extension_connection.py", line 41, in __init__ 
    PORT = utils.free_port() 
    File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/common/utils.py", line 27, in free_port 
    free_socket.bind(('127.0.0.1', 0)) 
    File "/usr/lib/python2.7/socket.py", line 224, in meth 
    return getattr(self._sock,name)(*args) 
socket.error: [Errno 99] Cannot assign requested address 

Я сделал некоторые испытания на моем ноутбуке, и в нормальных условиях, free_port() возвращает открытый порт в системе очень быстро. Когда я выполняю те же тесты на плате UDOO, он сбрасывается каждый раз.

Это аналогичная проблема, как этот пост (PyCharm unable to connect to GhostDriver), который оказался проблемой переменной среды в PyCharm. К сожалению, решение в этой статье не относится к этой ситуации, потому что я выполняю сценарий из командной строки.

Laptop (успешная среда): Dell Latitude E6520, Ubuntu 12,04, Intel Core i5

Совет по развитию (неудачная среда): UDOO Quad, Debian 7 (астматический), ARM процессор

Есть идеи? Вам нужна дополнительная информация, чтобы помочь диагностировать проблему?

Спасибо, Бен

ответ

4

Я продолжал играть вокруг после публикации этого вопроса. Оказывается, я не мог пинговать 127.0.0.1, так что я заглянул в свое устройство loopback.

Я добавил:

auto lo 
iface lo inet loopback 

в/и т.д./сеть/интерфейсы и побежал:

sudo ifup lo 

инициализировать мой петлевого устройства. Теперь он отлично работает.

Смежные вопросы