【问题标题】:struggling to click on link within htmlunit努力点击htmlunit中的链接
【发布时间】:2011-03-09 09:54:06
【问题描述】:

我在单击 htmlunit 中的链接时遇到问题。我浏览了网站上的 api(我不太了解)并查看了我能找到的所有示例代码,但仍然无法点击链接。

这是错误信息的顶部(它很大,如果你愿意,我可以全部提交)

"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()

如果我做一个打印链接2,我会得到:HtmlAnchor[<a href="javascript:__doPostBack('ctl00$MainContent$gvSearchResults','Page$2')">]

起初我认为 HtmlAnchor 可能是个问题,我不得不将其删除,但后来我查看了其他示例代码,他们的链接似乎以相同的格式结束,并且可以正常工作。

很困惑..请帮助:-)

提前致谢!

【问题讨论】:

    标签: java screen-scraping web-scraping htmlunit


    【解决方案1】:

    问题不在于用于单击链接的代码。它在单击链接时执行的 JavaScript 中。 JavaScript 有问题,或者 HtmlUnit 使用的 JavaScript 解释器在运行它时出现问题。

    问题似乎出在执行期间具有 Infinity 值的参数 x 上。

    【讨论】:

    • 那不好。我完全不走运还是我能做些什么?我已经做了很多工作,但是下一页点击可以杀死这个项目是很糟糕的。有没有办法让javascript表现得更好?或者一些让htmlunit的javascript解释器表现得更好的设置?甚至在其中加载另一个 javascript 引擎(google's v8、mozilla spidermonkey 等)
    • 我想通了!!耶。我担心我的项目会失败,但基本上我必须设置 webclient = WebClient(BrowserVersion.FIREFOX_3_6) 我之前将其设置为 IE7,但它无法正常工作。我猜该网站的行为与不同的浏览器标题不同..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-05
    • 1970-01-01
    • 2015-12-19
    • 1970-01-01
    • 1970-01-01
    • 2021-05-05
    • 2017-08-19
    相关资源
    最近更新 更多