I know that in HtmlUnit i can fireEvent
submit on form and it will be posted. But what If I disabled javascript and would like to post a form using some built in function?
I've checked the javadoc and haven't found any way to do this. It is strange that there is no such function in HtmlForm...
I read the javadoc and tutorial on htmlunit page and I Know that i can use getInputByName()
and click it. BuT sometimes there are forms that don't have submit type button
or even there is such button but without name attribute.
I am asking for help in such situation, this is why i am using fireEvent
but it does not always work.
The form can be submitted without using submit button by implementing a specific event attribute or by clicking the link. This task can be done by using the OnClick event attribute or by using the form. submit() method in Javascript.
onsubmit = function () { if (allowSubmit) allowSubmit = false; else return false; } })(); (well, as sure-fire as you can get with JS enabled anyway). You could disabled the button as a visual confirmation to the end user that the form can only be submit once too. Very correct.
When we click on the link, the function submitForm() will get executed. This function will get the element object using DOM getElementById() method by passing the form id to this method, then the form will be submitted by using submit() method.
HtmlUnit is used as the underlying "browser" by different Open Source tools like WebDriver, WETATOR, jenkins-test-harness, Spring Testing, ... Canoo WebTest, JWebUnit, JSFUnit, Celerity, HtmlUnit was originally written by Mike Bowler of Gargoyle Software and is released under the Apache 2 license.
You can use a 'temporary' submit button:
WebClient client = new WebClient();
HtmlPage page = client.getPage("http://stackoverflow.com");
// create a submit button - it doesn't work with 'input'
HtmlElement button = page.createElement("button");
button.setAttribute("type", "submit");
// append the button to the form
HtmlElement form = ...;
form.appendChild(button);
// submit the form
page = button.click();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With