我刚刚开始玩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中的环境变量问题。不幸的是,那篇文章中的解决方案不适用于这种情况,因为我是从命令行执行脚本的。

笔记本电脑(成功的环境): Dell Latitude E6520,Ubuntu 12.04,Intel Core i5

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

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

谢谢,

最佳答案

发布此问题后,我继续玩耍。事实证明,我也无法ping 127.0.0.1,因此我调查了回送设备。

我补充说:

auto lo
iface lo inet loopback

到/etc/network/interfaces并运行:
sudo ifup lo

初始化我的环回设备。现在运行良好。

关于python - Python:Selenium无法在UDOO上找到可用端口,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21505663/

10-12 19:33