我刚刚第一次安装了Selenium,而我开始时遇到了麻烦。
使用pip
安装正常:
pip install selenium
我可以在Python中import selenium
。
现在我正在尝试运行以下示例脚本:
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.python.org")
assert "Python" in driver.title
Firefox会打开,但它不会导航到“http://www.python.org”(类似于in this question描述的行为 - 它只显示一个空白页面)
大约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>'
这些是软件版本
答案 0 :(得分:4)
好的,经过一段时间的搜索后,我注意到问题通常是Selenium中的一个错误(可能,但不太可能)或代理问题。 尽管如此,没有一个答案表明如何解决代理问题似乎都有效。
最后我明白了:你需要在任何地方取消所有代理设置(环境变量,并且 - 在我的情况下,这是Gnome上的问题)。稍后当您创建webdriver时,您需要传递一个配置文件,将浏览器代理设置设置为您实际使用的设置(在我的情况下是自动配置URL)
1)取消设置http_proxy
环境变量(由urllib
使用)
export http_proxy=
2)清除Gnome代理设置: 系统 - &gt;偏好 - &gt;网络代理 - &gt;选择“直接互联网连接”
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)
答案 1 :(得分:1)
需要升级硒,如果您使用的是最新版本的Firefox,则应使用最新版本的硒
对于Python,请输入此命令
pip install -U selenium
对于Java,删除旧jar并从此处http://www.seleniumhq.org/download/下载最新版本并附加到构建路径。它会发现。使用Firefox进行快乐测试
答案 2 :(得分:0)
如果您在通常的端口80上运行,请尝试关闭localhost(127.0.0.1)Web服务器。
如果正在运行localhost服务器,则Firefox Binary不允许您加载配置文件。
参见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
答案 3 :(得分:-1)
我有同样的问题 我引用了链接来检查壁虎驱动程序的版本: https://firefox-source-docs.mozilla.org/testing/geckodriver/Support.html
相应下载版本 该问题已解决