不能使用Python的HTMLUnit Webdriver

时间:2012-08-06 09:59:08

标签: python selenium webdriver htmlunit

我正在尝试使用Python中的HTMLUnit WebDriver,代码如下:

from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.remote.webdriver import WebDriver

if __name__ == '__main__':
    webdriver = WebDriver('http://127.0.0.1:4444/wd/hub', DesiredCapabilities.HTMLUNIT)
    webdriver.get('http://www.google.com')

...并收到以下错误:

Traceback (most recent call last):
  File "bcc_mon_webdriver.py", line 8, in <module>
    webdriver = WebDriver('http://127.0.0.1:4444/wd/hub', DesiredCapabilities.HTMLUNIT)
  File "c:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 63, in __init__
    self.start_session(desired_capabilities, browser_profile)
  File "c:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 105, in start_session
    'desiredCapabilities': desired_capabilities,
  File "c:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 156, in execute
    self.error_handler.check_response(response)
  File "c:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 147, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: u'Error forwarding the new session cannot find : {platform=ANY, browserName=htmlunit, version=}' ; Stacktrace: Method process threw an error in RequestHandler.java 

我在版本2.25中也使用selenium-server-standalone-2.25.0.jar和Python selenium模块。 Selenium服务器在localhost上运行,它可以正常运行DesiredCapabilities.FIREFOX

我是否必须手动安装htmlunit? selenium网站说standalone-jar包含所有依赖项。

1 个答案:

答案 0 :(得分:2)

问题是您没有与{platform=ANY, browserName=htmlunit, version=}模式匹配的节点。要修复它,您需要使用这些浏览器设置启动selenium节点,如下所示:

java -jar selenium-server-standalone-2.25.0.jar -role node -hub http://localhost:4444/grid/register -browser browserName=htmlunit

在Selenium wiki(http://code.google.com/p/selenium/wiki/Grid2)上,它说:

  

“默认情况下,这会启动11个浏览器:5个Firefox,5个Chrome,1个Internet   资源管理器“。

因此,为了能够使用不同的浏览器 - 例如htmlunit - 您必须使用-browser参数启动节点,检查desired_capabilities.py文件(位于selenium / webdriver / common下的selenium egg中) /)以获取每个浏览器所需参数的参考。