2011-03-09 15 views
3

我在點擊htmlunit中的鏈接時遇到問題。我瀏覽了網站上的api(我並不是很瞭解它),並查看了我可以找到的所有示例代碼,並且點擊鏈接仍然存在問題。努力點擊htmlunit中的鏈接

這裏的錯誤訊息的頂部(其相當大的,如果你想我可以提交全部)

"page2 = link2.click() Exception class=[net.sourceforge.htmlunit.corejs.javascript.JavaScriptException] com.gargoylesoftware.htmlunit.ScriptException: Sys.ArgumentOutOfRangeException: Sys.ArgumentOutOfRangeException: Value must be an integer. Parameter name: x Actual value was Infinity. " 

的第一個頁面加載罰款,但是當我點擊第二個鏈接,我得到這個錯誤(鏈接是javascript)。下面是我的代碼

 page = webclient.getPage(url) 
    anchors1 = page.getAnchors() 
    for anchor in anchors1: 
     if anchor.asText() == "2": 
      link2 = anchor 
      break 
    page2 = link2.click() 

部分如果我做一個打印LINK2我得到:HtmlAnchor[<a href="javascript:__doPostBack('ctl00$MainContent$gvSearchResults','Page$2')">]

起初我以爲也許是的HtmlAnchor是一個問題,我不得不刪除,但後來我看了看其他的示例代碼他們似乎有他們的鏈接最終以相同的格式,它的作品。

所以困惑..請幫助:-)

在此先感謝!

回答

1

問題不在於用來點擊鏈接的代碼。它是在單擊鏈接時執行的JavaScript中。無論JavaScript是錯誤的,還是由HtmlUnit使用的JavaScript解釋器在運行時都有問題。

該問題似乎與執行期間具有Infinity值的參數x有關。

+0

那不太好。我完全不走運,還是有其他事情可以做?我做了很多工作,並且很糟糕,下一頁點擊可能會導致這個項目無法繼續。有沒有辦法讓JavaScript表現更好?或一些設置,讓htmlunit的JavaScript解釋器表現更好?甚至加載另一個JavaScript引擎(Google的v8,mozilla spidermonkey等)。 – Lostsoul 2011-03-09 17:40:56

+1

我想出了它!好極了。我擔心我的項目會失敗,但基本上我必須設置webclient = WebClient(BrowserVersion.FIREFOX_3_6)我之前將它設置爲IE7,它不起作用。我猜這個網站的行爲與不同的瀏覽器標題有所不同。 – Lostsoul 2011-03-09 18:02:56