80 likes | 89 Views
Learn about Selenium 2, a test automation framework that merges Selenium and Webdriver projects for browser interaction via JavaScript and integrates newer functionalities. Explore the changes from Selenium 1 and how to migrate your code to Selenium 2 for enhanced performance. Discover upcoming features like the Advanced User Interaction API and increased browser support, all while simplifying the build process.
E N D
A Bluffer's Guide to Selenium 2 By: Simon Stewart & Anthony Long
What Is Selenium / Sel 2 / Webdriver Selenium is a test automation framework that interacts with a browser via javascript. Webdriver is a test automation framework that interacts with the browser directly. Selenium 2 is the merging of the Open Source "selenium" and "webdriver" projects. The most recent release is Selenium 2.0a4. It's really rather good.
Alphas!? Alphas - finish "baking" the new APIs • Mostly done • Need to add the advanced user API • and handling alerts and prompts • What's there is stable: we're only adding methods now • Timeline: ~2 months Betas - Implement all APIs in all supported browsers • Supported browsers? • Firefox 3-latest, IE 6-latest, Chrome, Android, iPhone • Timeline: Unknown Release - As beta, but equal support for Python, Ruby, Java and C#
How Does It Differ From Selenium 1 Two major differences: • Not trapped in the JS sandbox • So there's a way to handle "alerts" on window load cleanly. • Better emulation of user input, such as clicking and typing. • Cleaner API • So it's easier to write and maintain code. • Far less confusion about which method to call.
Why Change? • The OSS team are now focusing almost all their effort on Selenium 2 • Better support for IE • Still a huge part of the market • Support for testing mobile browsers • Will form a large part of the market in future • Buy-in and support from browser manufacturers: • Opera • Chrome • Becoming used by a broader range of OSS projects • Not only Selenium, but also Watir • More eyes and users means bugs detected more quickly • And fixed more rapidly!
How Do I Migrate? • Download Selenium 2 • Drop JARs into CLASSPATH • Using Selenium 1 tech, but with the new classes available. • Replace "DefaultSelenium" with "WebDriverBackedSelenium" • An implementation of selenium using the new technology • Inefficient, but allows a managed migration. • Migrate code to the new API on an "as needed" basis • Suggestion: when you edit a file using the old API, move to the new one
What's Coming Up? • Advanced User Interaction API: • Allows you to model "click here, then hold shift, click on these three elements, release shift, and drag everything over here" • Will be necessary for complex applications • Selenium 2.0a5 or 6 • Implicit Waits: • The framework will wait for an element to be present before continuing • Timeout easy to control • Preview in Selenium 2.0a4, fully implemented in 2.0a5 • Android support: • Selenium 2.0a5
If You're Working on the Selenium Code Itself • Shared JS • JS is great for querying the DOM • Shared JS functions between all webdrivers and Selenium 1.x • Dramatically easier to fix issues to do with JS in all browsers • Simplified Build Grammar • Hey, it matters to us :) • To build: • svn checkout http://selenium.googlecode.com/svn/trunk/ selenium-read-only • rake build • cd build/