UI-Element Release 0.7
It’s been a Selenium kind of day! At work, I won an award for promoting the best money-saving practice with my Selenium web automation initiative … complete with $500 gift certificate to a retail store of my choosing! Sweet!
And lo and behold, it’s finally time for another release. Let me tell you, I’ll be glad to get this one out of the way. I’m excited about the improvements and fixes it brings, but doing this stuff alone during one’s free time is … difficult. For a detailed list of changes in this release, please refer to the documentation bundled with the extension. I’m going to highlight the biggest changes:
Firstly, ui0.7 introduces a new rollup Selenium command, which can be used to group multiple individual Selenium commands. It is best used with commands that use ui locators. Rollup rules are written in a simplified javascript notation, and are shareable with the Selenium RC. This is pretty great actually - it means you can record using the IDE, apply the rollup rules to automatically group commands together, then export the test into a driven language and run the test programmatically. Need to update the testcase? No problem - if your testcase can be round-tripped or you kept and HTML version of it, continue to edit - with rollups - using the IDE!
Next, the locator defined for UI elements no longer has to be XPath. All other locator strategies are acceptable now. I made this change after Doug Seller’s comments at GTAC about CSS locators evaluating anywhere between 40-60% faster than XPaths on IE. So now your UI elements can take advantage of that too!
Speaking of XPath performance, the buggy implementation of an XPath uppercasing function in ui0.6 has been retired. Technically, UI-Element no longer needs to uppercase XPaths … but I borrowed from the ajaxslt library and implemented an XPath transformation function anyway, to demonstrate it could be done. I did some research on non-native XPath performance, and found that the case-insensitive “hack” included in Selenium Core to date is degrading performance by roughly 100%. One way to solve this would be to uppercase or lowercase the XPath before evaluation, depending on specific browser requirements (IE needs upper, Safari needs lower). This would allow removal of the hack. I’m planning on creating a Selenium JIRA ticket for this, but for now the function is still being exercised (read: tested!) within UI-Element.
This should be a pretty polished release, compared to the others. I hope you enjoy it! Remember, feedback makes me happy!
I’m consolidating into a single download link:
selenium-ide-0.8.7ui0.7.xpi (or higher)
October 14th, 2007 at 21:52
any chance the map could be
1- runtime loadable
2- idem into Selenium RC
Because if you have to drive automated tests of 2 different versions of a webapp (requiring different ui mapping files) you’d want to be able to do that from the test driver somehow…
Thanks, good stuff !
October 15th, 2007 at 09:54
Good ideas. I haven’t included any functionality for this in particular and haven’t tried it. When using with the RC, I’ve always provided everything in the user-extensions.js file given on the command line. It seems like it should be possible to inject new javascript without taking down the Selenium server; however I haven’t seen any driver functionality related to this.
I’ll keep my eyes peeled though.