使用 HtmlUnit 如何单击(形成)不是按钮的按钮

Using HtmlUnit how to click (form) a button that isnt a button

我经常遇到按钮,尤其是在登录表单上,它们似乎是一系列嵌套的 div,最后一个元素是 span

这些很少是表单的一部分,我假设由 Jvascript 控制。

是否可以通过单击这些按钮来实现按钮操作的效果,例如登录站点并返回新页面?

我已经尝试在页面加载后等待 javascript 加载:

HtmlPage page = webClient.getPage(someUrl);
webClient.waitForBackgroundJavaScript(6000);

然后点击 divspan 没有任何反应。

我正在使用 HtmlUnit 2.36,我知道存在一些 Javascript 评估问题。

通常你可以做类似的事情

webClient.getOptions().setThrowExceptionOnScriptError(false);


HtmlPage page = webClient.getPage(someUrl);
webClient.waitForBackgroundJavaScript(6000);

// locate your clickable element
....

buttonLike.click();
// wait until the js has done the job
webClient.waitForBackgroundJavaScript(20000);

// now get the current page content based on the current window; using
// HtmlPage myPage = (HtmlPage) buttonLike.click();
// does not work in all cases because the page content might be 
// async replaced by javascript
HtmlPage myPage = (HtmlPage) webClient.getCurrentWindow().getEnclosedPage();