gpt4 book ai didi

java - 使用 htmlunit 单击 javascript anchor 似乎不起作用

转载 作者:搜寻专家 更新时间:2023-11-01 02:50:27 25 4
gpt4 key购买 nike

我正在使用 htmlunit 自动浏览网站。这是问题所在:

我想点击 anchor 以显示给定表格的新页面。

这是 anchor :

<a href="javascript:__doPostBack('GridView1','Page$7')">7</a>

这是我的代码:

final HtmlAnchor a = page2.getAnchorByText("7");
HtmlPage page3 = a.click();
System.out.println(page2.getWebResponse().getContentAsString())
System.out.println(page3.getWebResponse().getContentAsString());

我没有任何错误信息。当我比较我的打印输出时,它们是相同的,但它们不应该是相同的,因为我只是点击了一个 anchor 。第一次打印应该显示表格的某一页,第二次打印另一页。

stackoverflow 帖子 struggling to click on link within htmlunit呈现了一个非常相似的问题,但是他的解决方案(将浏览器版本设置为 webclient)在我的情况下似乎不起作用。

最佳答案

也许您需要先等待 javascript 执行并加载。我建议使用以下命令:

webClient.waitForBackgroundJavaScript(1000);

甚至:

JavaScriptJobManager manager = page.getEnclosingWindow().getJobManager();
while (manager.getJobCount() > 0) {
Thread.sleep(100);
}

还有一个选择:

webClient.setAjaxController(new NicelyResynchronizingAjaxController());
webClient.setAjaxController(new AjaxController(){
@Override
public boolean processSynchron(HtmlPage page, WebRequest request, boolean async)
{
return true;
}
});

关于java - 使用 htmlunit 单击 javascript anchor 似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12226528/

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