【问题标题】:Selenium seems to work, but then gets a timeout error?Selenium 似乎可以工作,但随后出现超时错误?
【发布时间】:2011-06-01 00:20:39
【问题描述】:
$ java -jar selenium-server-standalone-2.0b3.jar 

00:17:03.883 INFO - Java: Sun Microsystems Inc. 19.0-b09
00:17:03.885 INFO - OS: Linux 2.6.32-305-ec2 i386
00:17:03.889 INFO - v2.0 [b3], with Core v2.0 [b3]
00:17:04.501 INFO - RemoteWebDriver instances should connect to: http://127.0.0.1:4444/wd/hub
00:17:04.530 INFO - Version Jetty/5.1.x
00:17:04.531 INFO - Started HttpContext[/selenium-server/driver,/selenium-server/driver]
00:17:04.532 INFO - Started HttpContext[/selenium-server,/selenium-server]
00:17:04.532 INFO - Started HttpContext[/,/]
00:17:04.614 INFO - Started org.openqa.jetty.jetty.servlet.ServletHandler@13c5982
00:17:04.614 INFO - Started HttpContext[/wd,/wd]
00:17:04.618 INFO - Started SocketListener on 0.0.0.0:4444
00:17:04.618 INFO - Started org.openqa.jetty.jetty.Server@1ffb8dc

当我运行这个脚本时:

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

browser = webdriver.Remote('http://localhost:4444/wd/hub', {'browser_name':'firefox','platform':'ANY', 'version':'','javascript_enabled':True})
browser.get("http://www.yahoo.com")

Selenium 服务器一开始似乎可以工作:

00:17:08.776 INFO - Executing: [new session: {platform=ANY, browser_name=firefox, javascript_enabled=true, version=}] at URL: /session)

然后我得到一个 python 错误:

Traceback (most recent call last):
  File "fb2.py", line 13, in <module>
    browser = webdriver.Remote('http://localhost:4444/wd/hub', {'browser_name':'firefox','platform':'ANY', 'version':'','javascript_enabled':True})
  File "/usr/local/lib/python2.6/dist-packages/selenium/webdriver/remote/webdriver.py", line 60, in __init__
    self.start_session(desired_capabilities, browser_profile)
  File "/usr/local/lib/python2.6/dist-packages/selenium/webdriver/remote/webdriver.py", line 96, in start_session
    'desiredCapabilities': desired_capabilities,
  File "/usr/local/lib/python2.6/dist-packages/selenium/webdriver/remote/webdriver.py", line 142, in execute
    self.error_handler.check_response(response)
  File "/usr/local/lib/python2.6/dist-packages/selenium/webdriver/remote/errorhandler.py", line 100, in check_response
    raise exception_class(message)
selenium.common.exceptions.WebDriverException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms

【问题讨论】:

  • 可能是因为 /etc/hosts 文件有环回地址。您是否尝试将值 127.0.0.1 更改为正确的 IP 地址?

标签: java python selenium selenium-rc


【解决方案1】:

看起来您正在使用 Selenium Grid。网格由一个集线器和连接到它的节点组成。当您运行测试时,您向服务器发送一个请求,该服务器根据您在desired_capabilities 中定义的内容将其相应地分派给具有适当配置的主机。在这种情况下,您似乎没有在任何地方启动节点。

您似乎未能启动一个节点。另外我相信使用 WebDriver 需要 Grid 2.0。据我了解,您使用的构建仅具有对 RC API 的网格支持。如果您下载并编译当前主干,您可以使用以下指南: http://code.google.com/p/selenium/wiki/Grid2

【讨论】:

  • 你怎么知道他在用网格?很想知道和学习:)
  • 他的 RemoteWebDriver 正在连接到 localhost:4444/wd/hub,这应该是网格配置的中心。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-12
  • 1970-01-01
  • 1970-01-01
  • 2021-03-22
  • 2021-04-01
  • 1970-01-01
  • 2012-09-03
相关资源
最近更新 更多