Java how to manipulate a html text element with dynamic generated name?
I want to manipulate or set text in a input type="text"
tag on a website. But this input has a dynamic generated name on every load.
How to get and manipulate this element in java?
Here is an example
<form method="POST" name="sform" class="form-horizontal" role="form" style="text-align: center;">
<input type="text" name="address" class="form-control" style="position: absolute; left: -5000px">
<input type="checkbox" name="honeypot" style="position: absolute; left: -5000px">
<center>
<input type="text" name="VHqnx63SwDau2nuNOOFRM2MCJ5sJawbpHv" class="form-control" value=""
placeholder="Type Text here" style="width: 448px; text-align: center;">
The name "VHqnx63SwDau2nuNOOFRM2MCJ5sJawbpHv" is on every new loading the website something else.
I found no really helpful posts to this problem.
Should I maybe use something like jsoup?
Answer
Yes, you should definitely use Jsoup.
With Jsoup, it should be as simple as this:
Document doc = Jsoup.connect(url).get();
System.out.println(doc.select("form[name=sform] > center > input").first());
This gets the first input element from the HTML which is a child of a centre
element which is in a form
element.
Which prints:
<input type="text" name="VHqnx63SwDau2nuNOOFRM2MCJ5sJawbpHv" class="form-control" value="" placeholder="Type Text here" style="width: 448px; text-align: center;">
Jsoup also offers lots of other cool stuff like directly getting or setting attributes, and lots more. So you could do:
Element e = doc.select("form[name=sform] > center > input").first();
e.attr("value", "Something");
System.out.println(e);
Which would print:
<input type="text" name="VHqnx63SwDau2nuNOOFRM2MCJ5sJawbpHv" class="form-control" value="Something" placeholder="Type Text here" style="width: 448px; text-align: center;">
With the value set to "Something".
Related Questions
- → How to update data attribute on Ajax complete
- → October CMS - Radio Button Ajax Click Twice in a Row Causes Content to disappear
- → Octobercms Component Unique id (Twig & Javascript)
- → Passing a JS var from AJAX response to Twig
- → Laravel {!! Form::open() !!} doesn't work within AngularJS
- → DropzoneJS & Laravel - Output form validation errors
- → Import statement and Babel
- → Uncaught TypeError: Cannot read property '__SECRET_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED' of undefined
- → React-router: Passing props to children
- → ListView.DataSource looping data for React Native
- → Can't test submit handler in React component
- → React + Flux - How to avoid global variable
- → Webpack, React & Babel, not rendering DOM