gpt4 book ai didi

javascript - HtmlUnit WebClient.getPage 不处理 javascript

转载 作者:行者123 更新时间:2023-12-02 10:27:02 25 4
gpt4 key购买 nike

我尝试使用 HtmlUnit WebClient.getPage 使用 javascript 加载页面。但加载的页面不会处理其中的 javascript 代码。

我尝试根据我能找到的所有相关答案在 WebClient 中添加所有选项。还是不行。

    WebClient webClient = new WebClient(BrowserVersion.CHROME);
webClient.getOptions().setJavaScriptEnabled(true);
webClient.getOptions().setThrowExceptionOnScriptError(false);
webClient.getOptions().setUseInsecureSSL(true);
String testUrl = "https://www.coursera.org/browse/data-science";
try {
final HtmlPage page = webClient.getPage(testUrl);
webClient.waitForBackgroundJavaScript(20 * 1000);
System.out.println(page.asXml());
}catch(Exception e) {
e.printStackTrace();
}
webClient.close();

在页面“https://www.coursera.org/browse/data-science”上,我希望看到 page.asXml() 中以 html 元素列出的所有类(class)。但它仅将“热门类(class)”部分中的类(class)显示为 html 元素。

最佳答案

乍一看,我认为这是因为 javascript 失败(重复声明 var t)。您可以在日志中看到错误。对于真正的浏览器来说,这不会失败,并且可能会停止所需的 js 处理,因此只创建了部分页面。

已经对这个错误进行了一些分析,我能够在一个简单的场景中重现这个问题(如果涉及这种巨大的 js 库,这通常是最困难的一步)。将尝试在 Rhino 中修复此问题,但这需要一些时间。

请通过 https://github.com/HtmlUnit 打开问题与你的测试用例。然后我将负责添加问题并建立 PR。如果您愿意,可以添加此问题的链接,然后我也会更新此问题。要了解任何 HtmlUnit 更新,您可以使用 https://twitter.com/HtmlUnit .

关于javascript - HtmlUnit WebClient.getPage 不处理 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53871630/

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