Python:Selenium无法在UDOO上找到自由端口

时间:2014-02-02 00:47:13

标签: python sockets selenium debian

我刚刚开始玩UDOO(一种类似于Raspberry Pi的单板计算机)。我有一些代码,我试图让一些测试代码工作,没有任何运气。

以下代码适用于我的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中的环境变量问题。不幸的是,该帖子中的解决方案不适用于这种情况,因为我正在从命令行执行脚本。

笔记本电脑(成功环境):戴尔Latitude E6520,Ubuntu 12.04,英特尔酷睿i5

开发板(环境不成功):UDOO Quad,Debian 7(wheezy),ARM处理器

有什么想法吗?您是否需要任何其他信息来帮助诊断问题?

谢谢, 本

1 个答案:

答案 0 :(得分:4)

在发布这个问题之后我继续玩。事实证明我无法ping 127.0.0.1所以我查看了我的环回设备。

我补充说:

auto lo
iface lo inet loopback

到/ etc / network / interfaces并运行:

sudo ifup lo

初始化我的环回设备。它现在运行得很好。