15

我刚刚第一次安装了 Selenium,但开始时遇到了麻烦。

安装顺利pip

pip install selenium

我可以import selenium在 Python 中。

现在我正在尝试运行以下示例脚本:

from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.python.org")
assert "Python" in driver.title

发生的情况是 Firefox 打开,但它没有导航到“ http://www.python.org ”(类似于这个问题中描述的行为- 它只显示一个空白页面)

大约 60 秒内没有任何反应,直到出现以下异常:

Traceback (most recent call last):
  File "selenium-test.py", line 4, in <module>
    driver = webdriver.Firefox()
  File "/home/usr1/.local/lib/python2.6/site-packages/selenium/webdriver/firefox/webdriver.py", line 61, in __init__
    desired_capabilities=capabilities)
  File "/home/usr1/.local/lib/python2.6/site-packages/selenium/webdriver/remote/webdriver.py", line 72, in __init__
    self.start_session(desired_capabilities, browser_profile)
  File "/home/usr1/.local/lib/python2.6/site-packages/selenium/webdriver/remote/webdriver.py", line 114, in start_session
    'desiredCapabilities': desired_capabilities,
  File "/home/usr1/.local/lib/python2.6/site-packages/selenium/webdriver/remote/webdriver.py", line 165, in execute
    self.error_handler.check_response(response)
  File "/home/usr1/.local/lib/python2.6/site-packages/selenium/webdriver/remote/errorhandler.py", line 136, in check_response
    raise exception_class(value)
selenium.common.exceptions.WebDriverException: Message: u'<HTML><HEAD>\r\n<TITLE>Network Error</TITLE>\r\n</HEAD>\r\n<BODY>\r\n<FONT face="Helvetica">\r\n<big><strong></strong></big><BR>\r\n</FONT>\r\n<blockquote>\r\n<TABLE border=0 cellPadding=1 width="80%">\r\n<TR><TD>\r\n<FONT face="Helvetica">\r\n<big>Network Error (tcp_error)</big>\r\n<BR>\r\n<BR>\r\n</FONT>\r\n</TD></TR>\r\n<TR><TD>\r\n<FONT face="Helvetica">\r\nA communication error occurred: "Operation timed out"\r\n</FONT>\r\n</TD></TR>\r\n<TR><TD>\r\n<FONT face="Helvetica">\r\nThe Web Server may be down, too busy, or experiencing other problems preventing it from responding to requests. You may wish to try again at a later time.\r\n</FONT>\r\n</TD></TR>\r\n<TR><TD>\r\n<FONT face="Helvetica" SIZE=2>\r\n<BR>\r\nFor assistance, contact your network support team.\r\n</FONT>\r\n</TD></TR>\r\n</TABLE>\r\n</blockquote>\r\n</FONT>\r\n</BODY></HTML>'

这些是软件版本

  • 火狐 ESR 17.0.5
  • Selenium(Python 绑定)2.35.0
  • Python 2.6.6
  • Red Had Linux 6.3
  • 已安装“Firefox WebDriver 2.35.0”浏览器扩展
4

4 回答 4

5

好的,在搜索了一段时间后,我注意到问题通常是 Selenium 中的错误(可能,但不太可能)或代理问题。尽管如此,建议如何解决代理问题的答案似乎都不起作用。

最后我明白了:您需要在任何地方取消所有代理设置(环境变量,并且 - 在我的情况下,这是 Gnome 上的问题)。稍后当您创建 webdriver 时,您需要传递一个配置文件,将浏览器代理设置设置为您实际使用的设置(在我的情况下是自动配置 url)

1)取消设置http_proxy环境变量(由 使用urllib

export http_proxy=

2)清除 Gnome 代理设置:系统 --> 首选项 --> 网络代理 --> 选择“直接 Internet 连接”

3)webdriver.Firefox()从配置代理的配置文件开始(在这种情况下,它是自动代理配置)

fp = webdriver.FirefoxProfile()
# Here "2" stands for "Automatic Proxy Configuration"
fp.set_preference("network.proxy.type", 2)
fp.set_preference("network.proxy.autoconfig_url",
                  "http://proxy-address-here:8080/") 
driver = webdriver.Firefox(firefox_profile=fp)
于 2013-09-13T09:42:50.360 回答
2

需要升级 selenium,如果你使用的是最新版本的 Firefox,你应该使用最新版本的 selenium

对于 Python,输入此命令

pip install -U selenium

对于 Java,删除旧 jar 并从此处下载最新版本http://www.seleniumhq.org/download/并附加到构建路径中。它将起作用 find 。使用 Firefox 进行愉快的测试

于 2016-05-27T05:01:47.600 回答
0

如果您在通常的端口 80 上运行任何服务器,也请尝试关闭您的 localhost(127.0.0.1) Web 服务器。

如果 localhost 服务器正在运行,Firefox 二进制文件不允许您加载配置文件。

请参阅 selenium\webdriver\firefox\firefox_binary.py 中的第 81 行,它指向函数/方法 is_connectable(self)

def is_connectable(self):

    """Trys to connect to the extension but do not retrieve context."""
    try:
        socket_ = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        socket_.settimeout(1)
        socket_.connect(("127.0.0.1", self.profile.port))
        socket_.close()
        return True
    except socket.error:
        return False

GLHF

于 2017-04-10T18:13:15.327 回答
-1

我有同样的问题我提到了检查壁虎驱动程序版本的链接: https ://firefox-source-docs.mozilla.org/testing/geckodriver/Support.html

相应地下载解决问题的版本

于 2020-06-11T21:23:29.103 回答