使用HtmlUnit单击javascript按钮
我正在尝试使用HTMLUnit单击Html按钮。 按钮代码:使用HtmlUnit单击javascript按钮,java,javascript,button,htmlunit,Java,Javascript,Button,Htmlunit,我正在尝试使用HTMLUnit单击Html按钮。 按钮代码: <input class="Submit" value="I Accept." type="submit" name="ButtonSubmit" id="button" onclick="/*some looong js code*/" tabindex="16"> 我尝试使用click();方法,但它不起作用 同时按下回车键: final HtmlTextInput textinput = form.getInput
<input class="Submit" value="I Accept." type="submit" name="ButtonSubmit" id="button" onclick="/*some looong js code*/" tabindex="16">
我尝试使用click();方法,但它不起作用
同时按下回车键:
final HtmlTextInput textinput = form.getInputByName("SomeInput");
//filling input
HtmlPage page = textinput.type(KeyboardEvent.DOM_VK_ENTER);
我认为问题在于js代码。它只是不使用HTMLUnit运行。(使用浏览器手动填写表单,效果很好。)感谢您的帮助。我不知道这是否能解决您的问题,但有两件事我会采取不同的方法来解决(Javascript似乎不会点击元素):
- 使用
而不是form.getElementById(“按钮”)
getInputByName
- 使用
等待效果发生(大约350毫秒似乎是一个神奇的数字)Thread.sleep
即使这样,我仍然会看到非确定性测试失败,因为单击的效果有时似乎不会发生。确保在代码中启用JS webClient.getOptions().setJavaScriptEnabled(true);
webClient.getOptions().SetThroweExceptionOnScriptError(false) 我尝试过元素的东西,但它没有改变任何东西。JS仍然没有运行。睡眠不太好。见我上面的评论。如果您的
表单
的类型是HtmlPage
,这实际上应该可以工作。表单
的类型是什么?HtmlForm form=page.getFirstByXPath(“//form[@class='reg-form']”);而且这个页面是HTMLAGEIT,如果你说的都是它不工作=>那么会发生什么呢?您得到的输出是什么?什么错误/异常?它不返回任何错误或异常。page2返回带有fielld输入的html页面,但它不向服务器发送http请求。
final HtmlTextInput textinput = form.getInputByName("SomeInput");
//filling input
HtmlPage page = textinput.type(KeyboardEvent.DOM_VK_ENTER);