2012-08-06 30 views
2

我試圖從Python的用下面的代碼使用webdriver的的HtmlUnit:無法使用webdriver的的HtmlUnit在Python

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 

我用selenium-server-standalone-2.25.0.jar與Python selenium模塊也在版本2.25。 Selenium服務器在本地主機上運行,​​並且它可以正常工作。 DesiredCapabilities.FIREFOX

我必須手動安裝htmlunit嗎?硒網站說,獨立jar包含所有的依賴關係。

回答

2

問題是您沒有與{platform=ANY, browserName=htmlunit, version=}模式相匹配的節點。要解決它,你需要開始硒節點與瀏覽器設置,如下所示:

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

在硒維基(http://code.google.com/p/selenium/wiki/Grid2)它說:

"By default, this starts 11 browsers : 5 Firefox, 5 Chrome, 1 Internet Explorer."

所以爲了能夠使用不同的瀏覽器 - 比如htmlunit - 你必須用-browser參數啓動節點,檢查desired_capabilities.py文件(位於selenium下的selenium/webdriver/common /下)以獲取每個瀏覽器所需的參數。