Selenium似乎正常,但却出现超时错误?
$ 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
1 个回答
2
看起来你在使用Selenium Grid。这个网格由一个中心(hub)和多个节点(nodes)组成,节点会连接到中心。当你运行一个测试时,你会向服务器发送一个请求,服务器会根据你在desired_capabilities中定义的配置,把请求分发到合适的主机上。不过在这种情况下,你似乎没有在任何地方启动一个节点。
你似乎没有成功启动一个节点。此外,我认为使用WebDriver需要Grid 2.0。根据我的理解,你现在使用的版本只支持RC API的Grid。你可以参考以下指南,如果你下载并编译当前的主干版本: http://code.google.com/p/selenium/wiki/Grid2