Charles: I have tried your test and observed the same behavior. My guess there is a bug or incompatibility between Perl Selenium bindings and Firefox. So some functionality is broken.
If you have plenty of time and really would not to stick with Perl while making a contribution, you can report the bug and work with the Perl Selenium community to get it fixed, and to bring the whole package to the level of decent maturity. Otherwise, I would recommend using Python for your Selenium adventures as it is quite mature though still not perfect and communicate with Perl using some protocol. Regarding Selenium IDE, as Barry said it is rather useless except maybe for some sample code to get you going. The problem is that there is no way an IDE can know what to validate and what to wait for - it just knows what you typed or clicked, but does not know why. I personally have my own Selenium driver class that is specific to our application where I have abstracted a number of frequently used tasks, such as log in, or navigating to a certain frequently used page through a sequence of clicks, or filling out a frequently used form. In that same class I wrap pretty much every Selenium native call because most of those are not very robust standalone - e.g. you might need to retry because AJAX has modified the structure of the page, or you want to wait until something appears in a div before you move on. In one case I had to deal with a "possessed" checkbox that was getting reset by some background script or possibly browser bug. I tried to track it down, but it was hidden well enough from my view. So I just wrote a wrapper that enables the checkbox in a loop until it is enabled for good, or the timeout is reached. And so on. I would recommend getting proficient with the DOM inspector (right click, Inspect Element), learn the basics of matching by CSS/XPath, and when you have control over the HTML, make sure everything you might ever need to use with Selenium has an id attribute. When all else fails, use Javascript injection. -- Sasha Pachev Fast Running Blog. http://fastrunningblog.com Run. Blog. Improve. Repeat. /* PLUG: http://plug.org, #utah on irc.freenode.net Unsubscribe: http://plug.org/mailman/options/plug Don't fear the penguin. */
