I'm trying to create a testing case for a web site which includes a form with 3 chained selects. The first select is populated by default when the web page is loaded. If any option from the first select is selected, then the second select is populated via an ajax call. In the same way, when an option is selected on the second selected, so the third select is populated via an ajax call. Finally, when an option is selected on the third select, a html table is populated with the information than I need to validate.
The three interconnected selects have this struct
<select id="s1" name="s1">
<option value="1">Option1</option>
<option value="2">Option2</option>
<option value="3">Option3</option>
</select>
<select id="s2" name="s2"></select>
<select id="s3" name="s3"></select>
I know for sure that the web site use Jquery for to do the ajax call. Somebody has or know a clean way for create this case with casperJs?
The right and easiest way to do this is to fire 'onchange' event on the first select after you changed value to need option, then the same on the second one:
Here is how I did it. Because the web context includes jQuery, we can use it to trigger events, and an important step is that we have to wait and validate after each ajax call before to process any next step.