gpt4 book ai didi

java - HTMLUnit 不等待 Javascript

转载 作者:IT老高 更新时间:2023-10-28 20:51:07 25 4
gpt4 key购买 nike

我有一个基于 GWT 的页面,我想使用 HtmlUnit 为其创建一个 HTML 快照。页面使用产品上的 Ajax/JavaScript 信息加载,因此在大约 1 秒内会出现 Loading... 消息,然后显示内容。

问题是 HtmlUnit 似乎没有捕获信息,我得到的只是“正在加载...”跨度。

下面是一个带有 HtmlUnit 的实验代码,我尝试给它足够的时间来等待数据的加载,但它似乎没有改变任何东西,我仍然无法捕获 GWT javascript 加载的数据。

        WebClient webClient = new WebClient();
webClient.setJavaScriptEnabled(true);
webClient.setThrowExceptionOnScriptError(false);
webClient.setAjaxController(new NicelyResynchronizingAjaxController());

WebRequest request = new WebRequest(new URL("<my_url>"));
HtmlPage page = webClient.getPage(request);

int i = webClient.waitForBackgroundJavaScript(1000);

while (i > 0)
{
i = webClient.waitForBackgroundJavaScript(1000);

if (i == 0)
{
break;
}
synchronized (page)
{
System.out.println("wait");
page.wait(500);
}
}

webClient.getAjaxController().processSynchron(page, request, false);

System.out.println(page.asXml());

有什么想法吗...?

最佳答案

感谢您的回复。实际上,我应该早点报告这一点,因为我自己找到了解决方案。显然在用 FF 初始化 WebClient 时:

WebClient webClient = new WebClient(BrowserVersion.FIREFOX_3_6);

它似乎正在工作。使用默认构造函数初始化 WebClient 时,它默认使用 IE7,我猜 FF 对 Ajax 的支持更好,是推荐使用的模拟器。

关于java - HTMLUnit 不等待 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5555178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com