Have you imaged that you have a lot of predefined widgets and you can use the widgets directly for your selenium testing and do not have the burden to work on individual links and buttons?
Your dream is coming true with Tellurium widgets. Tellurium provides you the capability to composite UI objects into a widget object and then you can use the widget directly just like using a tellurium UI object. The advantage is that you do not need to deal with the UIs at the link or button level for the widget, you just work on the high level methods. Another advantage is that this widget is reusable. One person defines it and packages as a jar file, anyone can then use it. Isn't this appealing?
I am done with the first round of prototype and take the Date Picker widget in the Dojo Java script framework as an example. You can use the Date Picker widget like regular Tellurium UI objects in your UI module.
ui.Form(uid: "dropdown", clocator: :, group: "true"){
TextBox(uid: "label", clocator: [tag: "h4", text: "Dropdown:"])
InputBox(uid: "input", clocator: [dojoattachpoint: "valueInputNode"])
Image(uid: "selectDate", clocator: [title: "select a date", dojoattachpoint: "containerDropdownNode", alt: "date"])
DOJO_DatePicker(uid: "datePicker", clocator: [tag: "div", dojoattachpoint: "subWidgetContainerNode"])
}
Note the DatePicker widget comes with the namespace DOJO to avoid the name collision.
One method we defined for the Date picker is selectPrevYear(). Then you can use the method directly in the tests as follows,
onWidget "dropdown.datePicker", selectPrevYear
For more details, please see the wiki page
http://code.google.com/p/aost/wiki/TelluriumWidget
and the tellurium trunk for the sub project dojo-widget.
You can also use the same way to define your own widgets using Tellurium so that you can always reuse and work on the high level methods.
Your comments and suggestions are welcome.
Thanks,
Jian
Currently, our Tellurium team is working hard in two directions to make tellurium more practical for all users.
One is to composite a set of UI objects into widgets so that users do not need to handle all the low level links
or buttons, but use the high level methods such as selectNextYear, taking Dojo datepicker as an example.
It might be more useful for us to work on widgets in Java script frameworks such as Dojo and ExtJs. As a result,
we have two sub-projects. One is to create widgets for Dojo, the other is for ExtJs.
The more important direction for us is to create a Firefox plugin to automatically create the Tellurium UI modules
for you when you select an area of UI. We have a sub-project TrUMP for this purpose and we got very primitive
results and still working hard on it.
We strongly believe Tellurium is on the right track to make web testing much easier for users, but we need more
feedback from users. Please try out Tellurium and let us know what you think. Our project web site is at
http://code.google.com/p/aost/
and user group is at
http://groups.google.com/group/tellurium-users
Thank you for your support,
Jian