Python套接字错误

Python套接字错误,python,selenium,Python,Selenium,我只是从这里运行selenium的示例代码: 代码是: from selenium import webdriver from selenium.common.exceptions import NoSuchElementException from selenium.webdriver.common.keys import Keys browser = webdriver.Firefox() # Get local session of firefox browser.get("http:

我只是从这里运行selenium的示例代码:

代码是:

from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys

browser = webdriver.Firefox() # Get local session of firefox
browser.get("http://www.yahoo.com") # Load page
try:
    browser.find_element_by_xpath("//a[contains(@href,'http://seleniumhq.org')]")
except NoSuchElementException:
    assert 0, "can't find seleniumhq"
browser.close()
但它对我不起作用,下面是它的反应:

 Traceback (most recent call last):
  File "test.py", line 4, in <module>
    driver = webdriver.Firefox()
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py", line 62, in __init__
    desired_capabilities=capabilities)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 72, in __init__
    self.start_session(desired_capabilities, browser_profile)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 114, in start_session
    'desiredCapabilities': desired_capabilities,
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 165, in execute
    self.error_handler.check_response(response)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 136, in check_response
    raise exception_class(value)
selenium.common.exceptions.WebDriverException: Message:
...
<div id="content">
<p>The following error was encountered while trying to retrieve the URL: <a href="http://127.0.0.1:60106/hub/session">http://127.0.0.1:60106/hub/session</a></p>

<blockquote id="error">
<p><b>Connection to 127.0.0.1 failed.</b></p>
</blockquote>

<p id="sysmsg">The system returned: <i>(111) Connection refused</i></p>

<p>The remote host or network may be down. Please try the request again.</p>
...
回溯(最近一次呼叫最后一次):
文件“test.py”,第4行,在
driver=webdriver.Firefox()
文件“/usr/local/lib/python2.7/dist packages/selenium/webdriver/firefox/webdriver.py”,第62行,在__
所需的能力=能力)
文件“/usr/local/lib/python2.7/dist packages/selenium/webdriver/remote/webdriver.py”,第72行,在__
self.start\u会话(所需的\u功能、浏览器\u配置文件)
文件“/usr/local/lib/python2.7/dist packages/selenium/webdriver/remote/webdriver.py”,第114行,在启动会话中
“desiredCapabilities”:所需的功能,
文件“/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py”,执行中第165行
self.error\u handler.check\u响应(响应)
文件“/usr/local/lib/python2.7/dist packages/selenium/webdriver/remote/errorhandler.py”,第136行,在check_响应中
引发异常\u类(值)
selenium.common.exceptions.WebDriverException:消息:
...
尝试检索URL时遇到以下错误:

连接到127.0.0.1失败

系统返回:(111)连接被拒绝

远程主机或网络可能已关闭。请重试该请求

...
您没有运行完整的示例。您发布的链接包含以下代码:

from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
import time

browser = webdriver.Firefox() # Get local session of firefox
browser.get("http://www.yahoo.com") # Load page
assert "Yahoo!" in browser.title
elem = browser.find_element_by_name("p") # Find the query box
elem.send_keys("seleniumhq" + Keys.RETURN)
time.sleep(0.2) # Let the page load, will be added to the API
try:
    browser.find_element_by_xpath("//a[contains(@href,'http://seleniumhq.org')]")
except NoSuchElementException:
    assert 0, "can't find seleniumhq"
browser.close()
这个很好用。 问题中代码的编辑版本缺少某些部分,因此失败。具体而言,您缺少以下两行:

elem = browser.find_element_by_name("p") # Find the query box
elem.send_keys("seleniumhq" + Keys.RETURN)
这引发了雅虎对“seleniumhq”的搜索。该搜索的结果就是要定位元素的内容

如果您不执行搜索,它将在以下情况下失败:

browser.find_element_by_xpath("//a[contains(@href,'http://seleniumhq.org')]")

当Selenium启动Firefox时

browser = webdriver.Firefox()
它访问的第一个地址是localhost-127.0.0.1:xxxxx

如果您使用的是代理服务器,则无法使用代理集访问本地主机。 因此,首先需要使用以下方法关闭代理:

unset http_proxy
unset ftp_proxy
unset socks_proxy
unset https_proxy

一旦关闭了代理,Firefox应该会毫无错误地启动。但是现在你需要在Firefox上设置你的代理。所描述的技术有效。

我已经尝试了完整的示例,但也没有成功。我认为问题在于我没有提到
127.0.0.1
,但错误表明它正试图达到
127.0.0.1:xxxxx
@MrRoy:interest。您的网络连接是否有可能使用代理服务器(“HTTP_proxy”environment var),或者您的本地计算机上是否有防火墙?是的,我在内部网络中,当然我们有防火墙,但据我所知,防火墙没有阻止任何网站…我是指您运行的计算机上的本地防火墙。。。不仅仅是在公司防火墙后面。隐马尔可夫模型。。127.0.0.1是您的本地环回地址。我将首先验证这一点。