使用HtmlUnit单击javascript按钮

Clicking a javascript button with HtmlUnit

本文关键字:按钮 javascript 单击 HtmlUnit 使用      更新时间:2024-01-29

我正在尝试使用HTMLUnit单击一个Html按钮。按钮代码:

<input class="Submit" value="I Accept." type="submit" name="ButtonSubmit" id="button" onclick="/*some looong js code*/" tabindex="16">

我的代码

final HtmlSubmitInput baton = form.getInputByName("ButtonSubmit");
HtmlPage page2 = baton.click();

我试过使用click();方法,但它不起作用。

同时按下回车键:

final HtmlTextInput textinput = form.getInputByName("SomeInput");
//filling input
HtmlPage page = textinput.type(KeyboardEvent.DOM_VK_ENTER);

我认为问题出在js代码上。它只是不使用HTMLUnit运行。(用browers手动填写表格,效果很好。)谢谢你的帮助。

确保在代码中启用JS

webClient.getOptions().setJavaScriptEnabled(true);webClient.getOptions().setSthrowExceptionOnScriptError(false);

我不知道这是否能解决你的问题,但为了解决这个问题,我做了两件不同的事情(Javascript似乎不会点击元素):

  • 使用form.getElementById("button")而不是getInputByName
  • 使用Thread.sleep等待效果发生(大约350ms似乎是一个神奇的数字)

即便如此,我仍然会看到非决定性的测试失败,因为点击的效果有时似乎不会发生。