【问题标题】:Java HtmlUnit background JavaScript loadingJava HtmlUnit 后台 JavaScript 加载
【发布时间】:2017-11-29 14:35:18
【问题描述】:

我正在尝试使用 HtmlUnit 浏览一个网站。

本网站根据 JavaScript 事件更改某些按钮/使某些元素可见/隐藏。

我能给出的最简单的例子:有一个文本输入框和一个按钮,上面有一个防止它被点击的类。只要在框中写入文本,按钮就会变成可点击的。我正在设置输入文本框的值,但没有看到按钮上的更新。

为了让页面等待后台更新,我尝试了以下方法:

  • 使用 NicelyResynchronizingAjaxController() 作为 Web 客户端的 ajax 控制器
  • 在设置 ajax 控制器时覆盖 processSynchron() 以返回 true
  • 让线程休眠几秒钟
  • 在页面变量上同步并调用等待几秒钟
  • 在 Web 客户端调用 waitForBackgroundJavaScript
  • 在页面的封闭窗口的作业管理器没有更多 JavaScript 作业时循环

【问题讨论】:

  • 请提供您的代码如何更新文本框以及如何检索页面内容
  • HtmlInput 表单; form.setValueAttribute("...");然后页面内容我尝试通过 button.click() 和初始对象检查页面。也许这就是问题所在,没有以正确的方式获取内容?有什么建议吗?

标签: javascript java ajax htmlunit


【解决方案1】:

看起来您正在使用非常低级的方法。 试试

  • 使用 type("...") 方法
  • 然后 waitForBackgroundJavaScript() 等待 javascript 处理

如果这没有帮助,您必须提供详细的示例,让我们有机会查看您的代码并进行一些分析/调试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多