【发布时间】:2017-06-21 12:46:42
【问题描述】:
问题:
- 我正在使用 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 中)放在黑名单上,并在未来跳过它们的加载。有可能吗?
【问题讨论】:
标签: javascript java htmlunit