【问题标题】:HTMLunit clicking HTMLanchor gives exception errorHTMLunit 点击 HTMLanchor 给出异常错误
【发布时间】:2014-01-04 12:02:32
【问题描述】:

我正在使用 HTMLunit 填写网站上的表单,但卡在需要提交的 HTMLanchor 上。

html代码:

<a id="syi-place-ad-button" class="button primary medium  "><span>Plaats uw advertentie</span></a>

试图点击它:

    HtmlAnchor submitButton = (HtmlAnchor) page2.getElementById("syi-place-ad-button");     
    form2.appendChild(submitButton);
     
    page3 = submitButton.click();;
    webClient.waitForBackgroundJavaScript(10*1000);
    webClient.setAjaxController(new NicelyResynchronizingAjaxController());
    
    WebResponse response = page3.getWebResponse();
    String content = response.getContentAsString();
    System.out.println(content);
    webClient.closeAllWindows();

最后给出这个错误:

== CALLING JAVASCRIPT ==

  function (e) {
      return st === t || e && st.event.triggered === e.type ? t : st.event.dispatch.apply(s.elem, arguments);
  }

======= EXCEPTION END ========

任何人都可以帮助我解决我在这里可能遗漏或做错的事情吗?

【问题讨论】:

  • 对我来说似乎是same old JavaScript 问题
  • 谢谢,我看了那里的答案。但是那里给出的选项对我没有帮助。那么是否有人对解决此问题有任何想法?

标签: java javascript forms htmlunit


【解决方案1】:

你能停止在后台运行的 javascript 并让我知道结果吗?停止 JS 如下所示

client.setJavaScriptEnabled(false);

【讨论】:

  • setJavaScriptEnabled() 不再是较新的 htmlunits 中的函数。所以我不能用那个:(
  • 我得到的结果是页面没有发生任何变化。单击后我得到的页面与单击前相同。所以似乎没有调用点击:(
  • 你能运行下面的代码并告诉我:HtmlElement submitButton = page2.getElementById("syi-place-ad-button"); page3 = (HtmlPage)submitButton.click();
  • 同样的事情。没变。点击前的页面与点击后的页面没有任何变化。好像没有点击一样。
  • 表单源太大了,我想不能在这里发布,但是您应该可以很简单地访问 URL:marktplaats.nl/syi/plaatsAdvertentie.html 然后您必须单击第一个下的 3 个选项:Kleding | Dames 2nd: Schoenen en Beenmode 3rd: Schoenen 点击 3rd 后,您将进入我试图填写表格的页面。
【解决方案2】:

尽管 setJavaScriptEnabled(boolean) 在 2.13 中已弃用,但它已添加到 WebClient 的 WebClientOptions 成员中。这是文档。

要禁用 JavaScript,您应该这样做:

webClient.getOptions().setJavaScriptEnabled(false);

【讨论】:

  • 谢谢,我不知道。我使用了它,它确实禁用了它。
猜你喜欢
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
  • 2017-01-19
  • 1970-01-01
  • 2012-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多