HtmlUnit:跳过JS执行

时间:2017-06-21 12:46:43

标签: javascript java htmlunit

问题:

  • 我正在使用HtmlUnit解析JS生成的页面。
  • 我必须等到所有JS都被加载然后解析页面。
  • 所有这些页面共享相同的JS脚本。
  • 有一个有问题的脚本无法解析。
  • 有问题的脚本不会影响html呈现。

我想做什么:

  • 我想检测有问题的脚本的名称。
  • 将此名称列入黑名单。
  • 并跳过它进一步解析。

这是我用于JS加载的代码......

  private void waitForJs(WebClient client, HtmlPage page) throws Exception {
    int maxDelay = 1000;
    int attempts = 10;
    int i = client.waitForBackgroundJavaScript(maxDelay);
    while (i > 0 && attempts > 0) {
      i = client.waitForBackgroundJavaScript(maxDelay);
      if (i == 0) {
        break;
      }
      synchronized (page) {
        page.wait(500);
      }
      log("Waiting for JS (" + i + "), attempts: " + attempts, false);
      attempts--;
    }
  }

我不得不进行尝试"尝试"变量,以免加载受损脚本。而不是这个,我想把所有有问题的脚本 - 保留在waitForJs中 - 放在黑名单上,并跳过它们在期货中的加载。有可能吗?

1 个答案:

答案 0 :(得分:0)

您可以将JavaScript的内容修改为空字符串,如提示here

/etc/init.d/mysql restart