click() 方法什么也没做

问题描述 投票:0回答:1

我试图在这个网站上爬行:https://www.softpedia.com/get/Programming/Other-Programming-Files/Apidog.shtml使用html单元。

我想“单击”“立即下载”按钮,它应该运行 js 代码并在页面上打开一个新窗口:

WebClient webClient = new WebClient(BrowserVersion.EDGE);
webClient.waitForBackgroundJavaScript(20 * 1000);
webClient.getOptions().setJavaScriptEnabled(true);
webClient.getOptions().setUseInsecureSSL(true);
webClient.getOptions().setThrowExceptionOnScriptError(false);
webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
HtmlPage page = webClient.getPage(patchUrl);
HtmlElement element = page.getFirstByXPath(xpath);
page = element.click();
webClient.waitForBackgroundJavaScript(10 * 1000);
return page.asXml();

我设法通过其 xpath ("//*[@id="dlbtn1"]/a") 获取 html 元素,但从中调用 click() 没有执行任何操作。即使我调用 sleep 或 waitForBackgroundJavaScript(),HtmlElement 中的 readState_ 字段也是“正在加载”而不是“已完成”。

我错过了什么吗?谢谢。

尝试更改代码,在这里搜索答案,查看文档,但没有任何帮助。

javascript java web-scraping xpath htmlunit
1个回答
0
投票

当您第一次打开提供的页面时,它会显示一个带有隐私通知和两个按钮的模式(如果您在浏览器中没有看到它,请尝试隐身模式)。理论上,您应该先点击“同意”按钮,然后再点击“下载”。

© www.soinside.com 2019 - 2024. All rights reserved.