This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Blog Posts - 2011

Announcing Selenium Conf ’12

The community around Selenium is the thing that really makes the Selenium project special.

The community around Selenium is the thing that really makes the Selenium project special. Last year, we held the first official Selenium Conference in San Francisco, and it was both great fun and a huge success. It is therefore with great pleasure that we are announcing Selenium Conf ’12! It’ll be taking place in London from the 16th to the 18th April, and we’re really looking forward to seeing you all there!

If you’ve been following @seleniumconf on Twitter, you probably already know that we have some early bird tickets available and the Call for Papers is open. We’re looking for everything from lighting talks, through traditional presentations, to half-day long workshops on anything that uses Selenium in any way, including building on the Selenium WebDriver APIs (so talks about Watir would be welcome too!). It’ll be a chance to show off what you know and learn from the experts. If you get a quiet moment during the Christmas break, why not put forward a talk? If you’re not a talker, but can help us with sponsorship, we’d love to hear from you too!

Just as last year, the workshops will be happening on the first day of the conference, but places are limited. We plan on running a total of four workshops across two tracks, meaning each workshop is half a day long; a fantastic opportunity to take a deep dive into a particular area of the project. The early bird tickets give you access to them, as well as the conference itself on the 17th and 18th.

The conference will consist of a main single track with selected speakers, with break out rooms being dedicated to an unconference, the contents of which will be decided by attendees. It’ll be your conference, help us make it brilliant 🙂

A Smattering of Selenium #71

Looking like there might also be one later in the week too…

Looking like there might also be one later in the week too…

A Smattering of Selenium #70

That’s it for this week.

That’s it for this week. 🙂

A Smattering of Selenium #69

In honor of this edition I provide… …in which I also date myself.

In honor of this edition I provide…

…in which I also date myself.

A Smattering of Selenium #68

Its been almost a month, so time for a flurry of Smatterings.

Its been almost a month, so time for a flurry of Smatterings.

  • Maven has a bad reputation in some circles (ignoring for a second that you are using Java…), but should you be using it the QuickStart Archetype looks interesting.
  • Why Your Monitoring Is Lying To You talks about types of logging which are valuable both from a Continuous Delivery perspective and for checking the health of your application during long script runs.
  • I still maintain that they who nails QC integration with/for Se will get buckets of money from people. Here is one attempt at it: Quality Center Integration
  • Good to Great Python reads is I think now on my list of things to hand new (and seasoned) Python folks.
  • Test Harness Design Patterns is from 2005 but still interesting.
  • jacuzzi is superficial wrapper over RSpec + Capybara + Selenium test setup and execution
  • Because I don’t already have enough backlog on videos, the 2011 Jenkins User Conference videos are now online. Though behind a registration wall. I know why companies do this, but boo on you.
  • This is how you publish videos from a conferences – GTAC 2011. Note that this is how SeConf did it too..
  • Awesome Page Objects In Testing uses Bing as its example to explain Page Objects in Ruby
  • Ignore the Se-IDE suggestion, but Improving Your Drupal Testing Process has an ‘assumed to work’ list specifically spelled out. Too often this is not explicitly made — and agreed upon as acceptable risks by stakeholders

A Smattering of Selenium #67

Spinach is a Cucumber-esque BDD framework that was advertised on twitter as having ‘less regex magic’.

Selenium 2.9 Released

We’re pleased to announce the release of Selenium 2.9.

We’re pleased to announce the release of Selenium 2.9. As well as improving the stability of Grid under high loads, we’ve added an experimental (and temporary!) feature that allows the Firefox driver to use a different mechanism for determining when a page is loaded. This is designed to handle the case where the driver appears to hang, as it’s waiting for all incoming requests to complete before continuing. How to enable this mode is listed in the changelog.

This release also includes an updated Android driver, allowing your tests to run on Ice Cream Sandwich devices.

A Smattering of Selenium #66

Aside from one of the dog’s tummy making noises that imply a big mess to clean up later, this scheduling thing seems to be working out.

Aside from one of the dog’s tummy making noises that imply a big mess to clean up later, this scheduling thing seems to be working out.

  • Heard someone talk about doing bitmap comparisons last week somewhere. Adaptive Images tricks I suspect are going to become more commonplace. Good luck with that. Se is best at interaction, structure and content checks; not does-it-look-the-way-some-human-intended. Robots where robots should be used. Humans where humans should be used.

  • Interacting with a Javascript confirmation from Selenium in Cucumber

  • Converting Selenium waitForCondition to WebDriverWait sends you along the path to understanding Waits in WebDriver

  • Splinter seems like a wrapper about the Python WebDriver bindings

  • Making a Mockery of TDD starts with To be a successful mockist, you must dislike mocks. which I think is just as important when doing Se. The res of the article is good too.

  • Integration Testing with RSpec, Capybara, and Selenium includes this gem

    Integration tests can be brittle if they know too much about how those components work. Proper integration tests use your application as a black box. They should know as little as possible about what happens under the hood, they’re just there to observe and interact with the interface.

  • I seem to think I already posted this, but the search isn’t finding anything. Here is a visualization of the commits to Se.

  • The GoogleWebmasterHelp channel on YouTube is full of ideas that you could include in your scripts. At least from an SEO perspective. And Google SEO at that.

  • The theme this week seems to be GIL. So here is About concurrency and the GIL which for once is about Ruby.

  • The whole ‘Facebook switching from Watir’ thing produced at least one good rebuttal; Facebook, Watir And Testing

A Smattering of Selenium #65

Trying something new; queuing up the catch-up post while I have time to catch-up.

Trying something new; queuing up the catch-up post while I have time to catch-up.

A Smattering of Selenium #64

How did I fall behind again already?!?!

How did I fall behind again already?!?!

Selenium 2.8 Released

In keeping with our (roughly) weekly releases, Selenium 2.8 was released today (and on Maven too), with a huge list of bug-fixes!

In keeping with our (roughly) weekly releases, Selenium 2.8 was released today (and on Maven too), with a *huge* list of bug-fixes! As well as improved stability, if you’re using the Java API, this release adds the ability to upload files to a RemoteWebDriver server (see RemoteWebDriver.setFileDetector).

Particular thanks have to go out to our two newest committers, Alexei Barancev and Ajay Kemparaj, for the copious bug-fixes they’ve contributed!

We’re already hard at work getting 2.9 ready for next week with even more more bug-fixes – watch this space!

A Smattering of Selenium #63

Watir to WebDriver: Unit Test Frameworks – Well, its ‘big’ news.

A Smattering of Selenium #62

All opinions, all the time…

All opinions, all the time…

A Smattering of Selenium #61

‘These are the people in your neighbourhood…’

‘These are the people in your neighbourhood…’

A Smattering of Selenium #60

This instalment of catch-up week is brought to you by the letters C and I.

This instalment of catch-up week is brought to you by the letters C and I.

A Smattering of Selenium #59

Its been a month and a half since the last one of these, and the volume of links I have collected illustrates that.

Its been a month and a half since the last one of these, and the volume of links I have collected illustrates that. So this week is now a cleanup week.

Selenium 2.6 Released

If you’ve been watching this blog carefully you’ll have noticed that the last release announcement we made was for 2.3…

If you’ve been watching this blog carefully you’ll have noticed that the last release announcement we made was for 2.3, so it may come as a surprise that we’re announcing that 2.6 has been released (even on Maven!). Don’t worry: 2.4 and 2.5 were released on time and without muss or fuss. 2.6, on the other hand has been almost three weeks brewing.

Selenium 2.6 introduces a raft of improvements and stability fixes. Kristian Rosenvold has been working wonders on Grid 2.0, addressing many reported issues and cleaning up the implementation. In the finest tradition of the project, I now owe him a dinner for his hard work. Thank you, Kristian!

For those of you not using Grid, as well as the normal suite of bug fixes, Selenium 2.6 now supports all versions of Firefox from 3.0 up to 7. For those of you using Java, there is an ExpectedConditions class that supplies many useful criteria when using the Wait and WebDriverWait classes. The packaged version of the OperaDriver has also been bumped to 0.7.2, which works hand-in-hand with Opera 11.5 and above.

We’ve also spent a considerable amount of time and effort working out the kinks in the Advanced User Interactions API. We’d love to hear how you’re using it, and what the gaps are that you can see. For more details about what’s changed, have a look at the release notes.

The release frequency has dropped recently, but we’re planning to head back to weekly releases from here on in. 2.7 is just around the corner!

A Smattering of Selenium #58

And here we go again with more links than I thought I had collected…

And here we go again with more links than I thought I had collected…

A Smattering of Selenium #57

Phew. The links made it through the Lion installation.

Phew. The links made it through the Lion installation.

A Quick Survey on Features

Rather than surprising the general community in ways that we have become somewhat known for, I figured I would try something new.

Rather than surprising the general community in ways that we have become somewhat known for, I figured I would try something new. Actually asking about usage of things before changing them in fundamental ways.

To this end, I have created a quick(!) survey about changes that are under consideration regarding UI-Maps and how Se-IDE is opened.

The survey is only two questions, so I’m hoping for a large response. I’ll post the results next Monday (August 8, 2011).

One more time for good luck, the survey is over here.

Selenium 2.3 Released

Continuing our new tradition of weekly releases, we’re very pleased to announce the release of Selenium 2.3.

Continuing our new tradition of weekly releases, we’re very pleased to announce the release of Selenium 2.3. The release notes for this version are pretty slim:

  • Better detection of clickable areas in Firefox.
  • Merge of Google-contributed code into the underlying javascript libraries used by the drivers.

We’ve also fixed bugs, one of which was being a nuisance for users of IBM’s JRE. The complete changelog can be found in the zipped downloads or in our source tree.

If you’re a Chrome user, then it’s a great idea to head over to the Chromium project’s download page to pick up the executable used by the ChromeDriver. It’s recently been updated, and now includes support for handling alerts and prompts! Thanks, Google!

A Smattering of Selenium #56

Safari is starting to whinge about how many tabs I have open which means it is time for another post.

Safari is starting to whinge about how many tabs I have open which means it is time for another post.

Selenium 2.2 Released

The feedback from the last release was heard loud and clear: little and often it is!

The feedback from the last release was heard loud and clear: little and often it is!

We’re proud to announce the release of Selenium 2.2. What’s new this time? For many users, this is simply a bug fix release as there are no new major features. One thing you might appreciate is better exceptions being thrown when xpath searches return something other than a web element when using the WebDriver APIs, and we’re continuing to tweak the emulation of user events.

If you’re a .Net user, there is now an official NuGet package, and if you’re a maven user then rest assured the release is heading to the central repo as quickly as we can manage.

A Smattering of Selenium #55

Last week we released Se-IDE 1.1.0 which now features WebDriver formats and Se 2.1.0 was released about an hour ago.

Last week we released Se-IDE 1.1.0 which now features WebDriver formats and Se 2.1.0 was released about an hour ago. Simon will post something shortly-ish on what’s changed.

  • I haven’t messed around with HTML5 goodies yes, but fake-html5 seems like it could be interesting.

  • The Yii framework has grown WebDriver support. Now if only there were not two competing PHP implementations for them to have to choose from…

  • If you are using Python’s native packaging system to share your framework, then Lies, More Lies and Python Packaging Documentation on `package_data` could spare you some headache

  • This presentation kinda needs someone in front of it to make it fully understandable, but they chose great photos so I’m including it.

    Selenium for Designers

    View more presentations from Fabio Fabbrucci

  • Sikuli on Selenium- A demonstration of automation using selenium and Sikuli (such as flash uploader) uses Sikuli where one might normally have used AutoIT but can’t get a handle onto the window. ….And with that use case for Sikuli arrives.

  • Ever wondered what you get when you cross alcohol and Se? Wonder no more.

  • Visual Studio seems like overkill for Python work, but if thats your cup o’ tea then Python Tools for Visual Studio is for you.

  • Creating users for the duration of a run is a problem a lot of systems have. But not with Facebook which has a Test Users API it seems. Don’t forget that you can use this idea internally in your apps too.

  • With the release of Selenium 2, the project is focuses not on being a browser test platform, but a browser automation one. The difference can be subtle but one area of big difference is in terms of network information details. Selenium RC has support for it, but Selenium WebDriver does not. And of course the latter is the future of the project. 99% of the time, you really don’t need the network information, but in that other 1% the official response to the problem is use something like the BrowserMob Proxy which also had Ruby bindings released this week.

Selenium 2.1 Released

Now that Selenium 2 has been released, one of the goals of the project is to provide regular updates to our users and the community.

Now that Selenium 2 has been released, one of the goals of the project is to provide regular updates to our users and the community. The aim is for these updates to be small and manageable, incrementally addressing issues and problems raised by you. Selenium 2.1, which is launched today, marks the first of these regular, small releases.

Selenium 2.1 is largely focused on improving Grid with a host of minor improvements including better tracking of “orphaned” browser instances. There are also some bug fixes in the Firefox and IE WebDrivers, particularly when dealing with elements that are just off screen, and in making the Selenium RC emulation in the Java bindings more robust when confronted with pages that haven’t started loading.

As you can see, this is a “bite size” release, but we’d love to know: would you prefer these small, swift releases or larger ones? Please answer in the comments, or on the mailing list!

A Smattering of Selenium #54

Two Smatterings in two days?!!?

Two Smatterings in two days?!!? That never happens. Well, except when I get behind and have a metric tonne of links queued up.

A Smattering of Selenium #53

Well, since the last Smattering there hasn’t been much in the community.

Well, since the last Smattering there hasn’t been much in the community. Oh. Well, except for hitting the 2.0.0 milestone. Which seems like a good time to remind people that:

  • Selenium is the project name
  • Selenium 1 is a project version
  • Selenium 2 is a project version
  • Selenium Remote Control (RC) is an API name
  • Selenium WebDriver is an API name
  • A person upgrades from Selenium 1 to Selenium 2
  • A person migrates from RC to WebDriver

And with that soap boxing, here are some links for your consumption.

Selenium 2.0: Out Now!

We are very, very pleased to announce the release of Selenium 2.0.

We are very, very pleased to announce the release of Selenium 2.0. If you’ve been waiting for a stable release since 1.0.3, now’s the chance to update. And if you do, what will you find?

For users of Selenium 1, this is a drop-in replacement. You’ll find support for modern browsers such as Firefox 5 and IE 9, as well as a wealth of bug fixes and stability improvements. That’s one reason to update, but what other reasons are there?

The big feature of this release — and the reason for the new version number — are the new WebDriver APIs for Python, Ruby, Java and C#. These have been in development for over four years, and are already widely used, trusted and depended on. The WebDriver APIs have been written by developers familiar with each language, so they feel like they belong there. We’re very proud of them, and hope you enjoy using them.

Support for WebDriver is also baked into Opera and Chrome, and we’re working closely with Mozilla to ensure that their browsers also support it. Looking to the future, WebDriver also works on both Android and iPhone, allowing you to test your sites on the next wave of the Web.

As well as support by the browser vendors, WebDriver also provides excellent emulation of user inputs using something we call “native events”. Normal browser automation frameworks, including older versions of Selenium, simulate user interactions via the Javascript engine of the browser. This approach is error prone as each browser has its own quirks. “Native events” are fired at the OS level instead, avoiding a large amount of browser-specific complexity.

Advanced Selenium users will be pleased to hear that the standalone selenium server also includes support for distributed testing via Selenium Grid. This new Grid implementation supports testing using both the original Selenium API and WebDriver, and has been developed as a collaboration between the current Grid maintainer and an engineer from eBay.

We’re working hard to ensure that Selenium IDE also supports all these new features and APIs. IDE version 1.1.0 should be released next week, with support for exporting to the four main languages supported by WebDriver. Please keep an eye on this blog for announcements! There will also be follow up posts, exploring and explaining each of the new features, and providing you with more information.

Of course, Selenium 2.0 is a major milestone, but we’re not done yet. This release marks the point where we expect our APIs to change very little from now on and where we believe it’s a solid release. Like all software, it has niggles and bugs, and we’ll be focusing on addressing these as your feedback comes in.

As a personal note, I’d like to say thank you to each of the many people that have worked so hard to make this the best Selenium version yet. Not only the developers but also the team working on making our documentation clear and easy to read, everyone who’s taken the time to report bugs, and also to you; our users and community. The project is great fun to work on, and you’re the reason for that. Thank you!

New ChromeDriver

The ChromeDriver is composed of two major pieces.

The ChromeDriver is composed of two major pieces. There are the client APIs, which you use in your tests, and there’s a server part, which the client APIs know how to start and run and which takes the form of an executable called “chromedriver”. The server piece is maintained by the Chromium team, and they’ve just released a new version, with support for Chrome 14 and with bug fixes. If you’re using Selenium 2.0rc3 and you’re also using the ChromeDriver, head over to the Chromium project’s download page for the latest and greatest!

Selenium IDE 1.0.12 – now with Firefox 5 support

Last week we quietly released Selenium IDE 1.0.12 on the website.

Last week we quietly released Selenium IDE 1.0.12 on the website. It has Firefox 5 support along with other improvements. See the release notes and unofficial announcement. Download it here or ask Firefox to check for plugins updates.

And for those who did not download 1.0.11 (it was not pushed through the update system) you will want to read about the formatter change that landed.

A Smattering of Selenium #52

Welcome to the Canada Day edition of the less-than-weekly-now collection of Selenium / Automation links that is the Smattering of Selenium.

Welcome to the Canada Day edition of the less-than-weekly-now collection of Selenium / Automation links that is the Smattering of Selenium.

Selenium 2.0rc3: The “Next One’s The Big One” Release

When we pushed the 2.0rc1 live, we really hoped that the next release would be 2.0 final.

When we pushed the 2.0rc1 live, we really hoped that the next release would be 2.0 final. We very quickly got some feedback that encouraged us to push a 2.0rc2. Now, after just under three weeks, we’re launching a third and final release candidate. You can download it from the Selenium HQ site or directly from Google Code.

We think we’ve addressed many of the common issues, added some polish and added a host of bug fixes and minor changes, and we hope to hear your feedback! The following headline changes have been made in Selenium 2rc3:

  • The deprecated RenderedWebElement interface has now been removed. Most of the functionality has been moved to either WebElement or to the Actions class.
  • The deprecated WebElement.getValue() method has been removed. Use WebElement.getAttribute(“value”) instead.
  • After some debate in the team, “WebElement.setSelected” and “WebElement.toggle” have been deprecated. They will be removed in the final release.
  • Thanks to the hard work of Mozilla engineers, we now offer Firefox 5 support.
  • The Opera driver, developed by the lovely chaps at Opera Software, is bundled with this release.
  • Improvements in the way that mouse interactions are simulated, particularly when elements are outside the visible area of the page.

As with almost all releases, there are still some issues left to resolve, but we’re working hard to make Selenium 2.0 as good as it can be.

A Smattering of Selenium #51

Two big releases last week…

Two big releases last week…

  • Selenium IDE 1.0.11 was released — with Firefox 4 support. Finally. And just in time for people to start agitating for Firefox 5 support. official announcement, unofficial announcement
  • Selenium 2 RC1 (and RC2) were released which marks the first official release of the new in-server grid behaviour. Even if you are not using the WebDriver API or grid functionality, you should be updating your environment to this. official announcement

And the rest.

  • Python’s super() considered super! begins with If you aren’t wowed by Python’s super() builtin, chances are you don’t really know what it is capable of doing or how to use it effectively. and goes from there.

  • Want to know what the top 100 issues that have been logged for Se according to the number of stars that have been given them? Click here and wonder no more

  • [Successful] automation is code, so Why Code Readability Matters is important. Especially since a large body of people writing automation would not consider themselves programmers so missed a large part of the implicit learnings that comes with it.

  • Tech Talk: Michael Deerkoski (Flickr) — “Continuous Deployment at Flickr” from Talks at LinkedIn on Vimeo.

  • The State of Ruby and Testing has graphs and such around some survey results around testing in the Ruby community. What is it with Ruby and their love of testing frameworks? 🙂

  • The future of testing Se-IDE lies with Mozmill. If you are interested in knowing how to run its own tests see Running the Selenium IDE Mozmill tests — and then start to add your own.

  • What is the most under-used part of Se you ask? Rollups! Which could be thought of as macros and an example can be found here. Rollups btw, will be moved into an Se-IDE plugin at some point.

  • How can I learn to automate my testing using Selenium? is designed to be Google link-bait and I can’t help but think that is a good thing. I would probably have switched Step 4 at the bottom to be ‘Create Page Objects with the help of the generated code’ or something like that. It’s not really a ‘Best Practice’ to take the raw generated code and run it anymore — if it ever really was.

  • When most people think of “the browser’s cache” they envision a single map of HTTP requests to HTTP responses on disk (and perhaps partially in memory) from Chrome’s 10 Caches shatters another idea I held. Sigh.

  • Hey, where’s my unashamedly ugly wait asks the question, then answers it. Sorta. Of course, the answer is in Java so is still ugly…

  • So does Se have a story around Symbian? Asked due to Top Smartphone Platforms in Europe

  • The depth and breadth of Python ends with Maybe I should just cancel all weekly meetings and sign off from all mailing lists and focus on two things: meeting Python users and coding. — more people should do this I think. Well, at least the first part.

  • From a SeConf2011 Lightning Talk is the Annotated Smattering of Selenium Tips

  • Integrating JUnit tests with HP/Mercury Quality Center – part one, part two

  • The Apple Testing Problem raises a good point (from Gartner! I know!) — of course, they don’t talk about the cause, which is Apple’s lack of participation in the outside world. It would be great if they would help with the automation driver for their core browser tech, but so would a lot of things that don’t seem to be likely.

  • I usually don’t link to my own stuff here, but I did a webinar for PustToTest last week and the video of it is now online. (Webinars are weird.)

Selenium 2.0rc2: The Better Working Release

You win some and you lose some.

You win some and you lose some. We’d been really pleased to get Selenium 2.0rc1 out, so we were pretty disappointed to hear that some of you were running into problems with the Java version of the IE driver not launching IE sometimes. That’s definitely not good, so we fixed the problems and have released Selenium 2.0rc2. It’s the same as rc1, but with fewer problems 🙂

We’re still very keen to hear your feedback! Let us know what you think!

Selenium 2.0rc1: The Grid Release

We’re very happy to announce the first Release Candidate for Selenium 2, available for Java, C#, Ruby and Python.

We’re very happy to announce the first Release Candidate for Selenium 2, available for Java, C#, Ruby and Python. The API has been stabilised and the functionality needed for the final 2.0 release is mostly in. We’re going to be working hard to get there as soon as possible, but now’s the perfect time to test the waters and provide us with any feedback you may have! Grab the downloads from the site!

Highlights:

  • Grid 2: A major feature of this release is Grid 2, an implementation of the Selenium Grid that supports WebDriver’s wire protocol, allowing tests using Selenium WebDriver to be distributed through it. There are some docs to help you get started on the wiki.
  • New ChromeDriver: Following a complete rewrite of the ChromeDriver, Selenium 2 is now supported natively by the Chrome browser itself. In order to use this, you must download the chromedriver executable from the Selenium project site.
  • OperaDriver support: We’ve bundled the most excellent OperaDriver into the release to make it easy to get started testing with Opera.
  • Support for native events in Firefox 4.
  • Advanced User Interactions: An API that allows you to model complex user interactions, such as clicking on an element, holding the shift key, clicking on three more, and then dragging the four elements to a final destination. The entry point to this API is the Actions class.

We’ve also deleted all methods that were deprecated in 2.0b3 and have marked a number of methods and classes (notably RenderedWebElement and WebElement.getValue) deprecated. These will be deleted in the next release.

Known issues:

  • Native events on Linux may not work properly on tests that include alerts and prompts.
  • Mouse actions using the Advanced User Interactions API may not work properly for elements that have to be scrolled into view.

We plan on making our releases more frequent in the run up to 2.0final and polish off the bugs and issues. Stay tuned! This is going to be fun 🙂

Selenium IDE 1.0.11 – Now with Firefox 4 Support!

We know that you have been waiting eagerly for this release and you have to wait no more.

We know that you have been waiting eagerly for this release and you have to wait no more. Selenium IDE 1.0.11 is now here and you can get it from the seleniumhq download site. The update will also be pushed to you automatically over the next couple days.

Other things of note around this release
Release Notes
Where to log bugs
Welcome Selenium IDE 1.0.11 (with Firefox 4 support)

A Smattering of Selenium #50

Half a century!

Half a century!

And because I am late doing this, the Selenium Test Day for Addons.Mozilla.org — which is today! gets top billing. Its actually going on Right Now. Looking to practice script writing and/or up your profile? This is a great way.

And now for the usual stuff.

A Smattering of Selenium #49

Here is the next 10 links as I play catch-up.

Here is the next 10 links as I play catch-up.

A Smattering of Selenium #48

It’s catch-up time again! Here is the first 10.

It’s catch-up time again! Here is the first 10.

A Smattering of Selenium #47

Nothing says ‘Hello Monday!’ like a batch of links and a wife with a kidney stone.

Nothing says ‘Hello Monday!’ like a batch of links and a wife with a kidney stone.

A Smattering of Selenium #46

Selenium IDE on Firefox 4 is Available for Testing!

Let’s put Selenium IDE on Firefox 4 is Available for Testing! Now! outside of the normal list. We have a ‘working’ version of Se-IDE for FF4, but don’t really have too too much faith in it (or at least I don’t). Please help test it.

A Smattering of Selenium #45

So of course by now everyone has seen Selenium 2.0b3: The Next Gen Browser Release and upgraded their rigs.

A Smattering of Selenium #45

So of course by now everyone has seen Selenium 2.0b3: The Next Gen Browser Release and upgraded their rigs. Expect Selenium IDE at some point in the next week with support for FF4 — if you just. can’t. wait. then you could try the bleeding edge for yourself. Logging any bugs you find; of course.

Oh, and there is the whole Selenium Conference next week.

But aside from that, here are the things I have collected.

Selenium 2.0b3: The Next Gen Browser Release

It’s been about 5 weeks since the release of beta 2, so we’re very pleased to announce that Selenium 2.0b3 has just been released.

It’s been about 5 weeks since the release of beta 2, so we’re very pleased to announce that Selenium 2.0b3 has just been released simultaneously for Java, .Net, Ruby and Python. You can download it from Selenium HQ or from the Google Code site. This release focused on providing excellent support for the next generation of browsers, particularly IE 9 and Firefox 4, and we think you’ll like what you’ll find.

  • Restructured documentation at Selenium HQ
  • An improved user interaction API
    • Including experimental IME support on Windows.
  • Alerts and prompts handling for IE.
  • Marked the following APIs as obsolete in .Net:
    • IRenderedWebElement.Hover()
    • IOptions.Speed
  • Even more improvements to the Java webdriver-backed selenium
    • We’ll document the migration path before 2.0b4 is out!
  • A significantly faster Android Driver

As well as these changes, there’s also the regular clutch of bug fixes and tweaks. For the number crunchers, there were a total of 331 changes that landed in the 5 weeks since the last release, with the 5 most active contributors working on each of the different languages supported by Selenium.

In addition to the enormous thanks that go to the developers, I’d like to add a big thank you to the Mozilla engineers who chipped in on the IRC channel at the last minute to help us work through some issues with Core. We’d not have been able to get this release out when we did without their help. Thank you Mozilla!

The next release will be focused on stabilization work, reducing our bug count and adding support for Grid 2.0.

A Smattering of Selenium #44

What started out as the week of Capybara rounded itself out fairly nicely

What started out as the week of Capybara rounded itself out fairly nicely

A Smattering of Selenium #43

The big thing in the new last week was ColdFusion. Yes, ColdFusion.

A Smattering of Selenium #42

Is this week’s post the Answer to the Ultimate Question of Life, the Universe, and Everything Selenium?

Is this week’s post the Answer to the Ultimate Question of Life, the Universe, and Everything Selenium?

Selenium 2.0b2 Released

We’ve just released Selenium 2.0b2.

We’ve just released Selenium 2.0b2. If you’re the impatient sort who loves to have the latest and greatest, head over to the download site and get it while it’s hot. If you’re a Python user, then all you need to do is a simple “pip install -U selenium”. Ruby users can, as ever, simply run “gem install selenium-webdriver”. Maven users need to wait just a little bit longer: we’re going to be checking the release in ASAP.

Between beta 1 and beta 2, we held a week-long Bug Bash, during which we closed a significant number of bugs. From a user’s perspective, other highlights include:

  • A more stable, capable iPhone driver.
  • Updated Android driver.
  • Improved python bindings for Selenium WebDriver. The namespace is now “selenium.webdriver”
  • Added “Selenium.getCssCount” to mirror “Selenium.getXpathCount”
  • WebElement.getText()” performs more consistently across different browsers.
  • Mono users can use the .Net bindings
  • Continued to improve the WebDriverBackedSelenium. If you’re looking to migrate from Selenium 1 to Selenium 2, and want to take your time, this is a useful stepping stone.
  • Reworked the Advanced User Interactions APIs. The big change is that the WebDriver APIs no longer rely on classes from the AWT.
  • .Net users now have more support classes, to make writing tests less tiresome.
  • The remote webdriver makes better use of sockets, which improves stability and scalability on Windows.
  • Started to add support for driving multiple IE instances. This is considered experimental, but we’d love to hear it’s working for you!

If you’re interested in the guts of Selenium 2 and how it worked, then you might find these interesting:

  • Continued reworking the IE and iPhone drivers to use the Automation Atoms.
  • Reworked the structure of the source tree to be more language focused.
  • We have the skeleton of a webdriver-backed selenium for Python.

As you can see, this is a big release. Beta 3 should be out a lot more quickly, and will be focusing on improving support for IE 9 and Firefox 4. Over the course of the 2.0b3 development, we shall also be removing as many deprecated methods as possible, so be sure to remove deprecation warnings from your builds when using 2.0b2!

A Smattering of Selenium #41

There isn’t an official announcement anywhere (yet) but Selenium 2.0b2 was released a couple hours ago.

There isn’t an official announcement anywhere (yet) but Selenium 2.0b2 was released a couple hours ago. Time to upgrade all your servers. Beta 3 is going to focus on IE9 and FF4 support.

Meanwhile…

OperaDriver Released

I think the word that I’m looking for is “wow”.

I think the word that I’m looking for is “wow”. Perhaps “Wow!” would express the concept a little more clearly. Perhaps “WOW!” would be even clearer. Yes, definitely. “WOW!” is a good way of describing this.

Before Christmas, Opera Software announced a pre-release of OperaWatir, an implementation of the Watir 2 API. What you may not know is that Watir 2 rests on the same WebDriver core as Selenium 2. Today, Opera made the source of the OperaDriver available on github: https://github.com/operasoftware/operadriver

This is “WOW!” It’s the first time a browser manufacturer has released their own implementation of the WebDriver APIs, and it shows how much Opera values test automation. Selenium 2 users now have an easy way to test that their sites work with Opera.

What are you waiting for? Go! Download! Test!

A Smattering of Selenium #40

You would think by now that I wouldn’t be surprised by the number of links I collect in a week.

You would think by now that I wouldn’t be surprised by the number of links I collect in a week.

Selenium Joins the Software Freedom Conservancy

It doesn’t seem that long ago that we announced on the mailing list that the Selenium project planned to join the Software Freedom Conservancy.

It doesn’t seem that long ago that we announced on the mailing list that the Selenium project planned to join the Software Freedom Conservancy. I’m very pleased to announce that as of Friday, 21st January, our application was approved. We’re now under the aegis of the SFC.

From most people’s perspective, this won’t make much difference: you’ll still be able to view the documentation and download the latest versions of Selenium from Selenium HQ. Development will continue to use Google Code’s code hosting and issue tracking. We are now, however, part of a formal non-profit organization, which means that a number of issues, such as how to handle revenues from adverts on our sites, become clearer and more transparent.

There are more details about what this means in the SFC’s announcement and their list of membership benefits. The bottom line is that this is a major milestone in Selenium’s growth and ensures that as we continue to grow our user base and introduce new features and projects, we’ll have strong support and backing from a well-respected Open Source organization.

A Smattering of Selenium #39

Hey look! All caught up — only took a month…

Hey look! All caught up — only took a month…

  • My opinions on Continuous Deployment are pretty widely known, but the IMVU folks certainly have a lot of neat tricks to ‘borrow’. Such as Buildbot and Intermittent Tests
  • Dealing with an API that returns XML? Your scripts don’t care about the readibility, but it helps you as the human if it is formatted pretty. xml formatter is a glorious time save in that case.
  • Who would have predicted this… Perl stuff
  • Since Se is using Sizzle now for locators, comes a tipnever do things like $(‘form *’). This is crazy costly, because Sizzle works from right to left. Will grab all elems first.. Not sure of the accuracy, but it makes sense.
  • Part of the debate when doing BDD and TDD is the overlap that [naturally] occurs; Duplication between BDD and Unit tests addresses it, partly be reframing the question.
  • webkitdriver is a project that aims to provide a WebDriver implementation for a light-weight in memory Web Browser
  • This week’s Selenium killer is PhantomJS
  • Achievement parodies are always amusing; here is on for Visual Studio — what would the Selenium ones look like?
  • Koans are a trendy way to learn / practice a language. Here is a Koan-a-copia of them
  • Want onto the speaking circuit? The 2011 Verify/ATI Conference is asking for presentations

Bug Bash Aftermath

What a week! I’m almost (almost!) sorry that the Bug Bash is over.

What a week! I’m almost (almost!) sorry that the Bug Bash is over. I’d like to say thank you to everyone involved in the Bug Bash, from those reporting issues, through those brave souls (Dharani, Anthony, Jari!) who went through the issue tracker, applied labels and made sure the issues were still fresh, all the way to those contributing fixes. And the top five bug fixers were?

  1. Jari Bakken (24 issues)
  2. Simon Stewart (21 issues)
  3. David Burns, aka: AutomatedTester (11 issues)
  4. Jim Evans (10 issues)
  5. Michael Tamm (6 issues)

Some interesting nuggets of information:

  • We closed 85 issues over the course of the week (that’s about 20% of all open Selenium issues)
  • There were 111 checkins last week alone
  • All of the major languages supported by Selenium 2 are represented here.
  • Jari Bakken needs to be bought a steak as big as his head.

What does this mean? It means that the next release of Selenium is set to be very solid. We’re going to be spending another week or so making sure that everything is stable after the influx of changes, but you can expect 2.0b2 to be out “real soon now”

If you missed the Bug Bash but still want to contribute, it’s never too late. Feel free to drop by the IRC channel, or checkout the source, find a bug and start building!

2.0b1 and Maven

If you’re using Maven and the 2.0b1 release of Selenium, you may be running into some problems getting maven to pick up your tests.

If you’re using Maven and the 2.0b1 release of Selenium, you may be running into some problems getting maven to pick up your tests. The underlying problem is that selenium contains support classes for both JUnit and TestNG. The solution is to add this to your pom.xml

<dependency>
  <groupId>org.seleniumhq.selenium</groupId>
  <artifactId>selenium</artifactId>
  <version>2.0b1</version>
  <exclusions>
    <exclusion>
      <groupId>org.testng</groupId>
      <artifactId>testng</artifactId>
    </exclusion>
  </exclusions>
</dependency>

A Smattering of Selenium #38B

Will today be the day I finish three weeks of catch-up?

Will today be the day I finish three weeks of catch-up? Well, no..

A Smattering of Selenium #38A

No. Really. I’m almost caught up.

No. Really. I’m almost caught up.

  • Want input in a non-english language but don’t want to convert your whole machine? InputKing might be able to help. And the fact it is in a browser means we can use it via Se.
  • HAR (HTTP Archive) is the format the cool kids are talking about, and now there is a har gem so you can make use of HAR files in you [Ruby] scripts.
  • Organizing scripts by tagging them is one bandwagon I got on last year to great success and while I don’t really live in the MS toolset, Test Categories for MSTest is likely how how I would do it MSTest.
  • Selenium won an award! Again! See the video of Se winning ‘Best Open Source Functional Automated Test Tool’
  • How a script is named is a reflection of the person who wrote it, in Unit Test Naming Convention one such style is described and the reasoning explained. Just ignore the second half of the summary’s first sentence though.
  • Michael Larson is Working his way though Selenium 1.0 Testing Tools Beginners Guide and documenting it in a series of blog posts he is calling a practicum
  • Most people use Se to create a regression security blanked, but it there are some points to be discussed around the arrogance of regression testing
  • ATDD continues to mature and the results of two different pattern workshops have now been posted. If you are using Cucumber, RobotFramework, Fitnesse, etc. you might want to pay attention.
  • It always saddens me a bit when large threads pop up on how to manage Se scripts. It’s called version control kids. But I realize I’m an outlier on this.
  • I suspect a lot of Se folks have a similar tale to How I Learned To Code

Bug Bash: 24-30 January

When the Selenium and WebDriver projects merged, all those moons ago, we moved the infrastructure from something we hosted to Google Code.

When the Selenium and WebDriver projects merged, all those moons ago, we moved the infrastructure from something we hosted to Google Code. One reason for doing this was to make it easier for people to file bugs and feature requests. And it looks like people have been filing a lot of bugs and feature requests.

In the run up for the 2.0b2 release, we’ll be running a Bug Bash. This will run from the 24th January all the way to the end of the 30th January. The aim will be to focus on clearing our bug list as much as possible, so that beta2 will be the best release of Selenium yet. We will, of course, be recognizing people who squash the most bugs here on the blog, and we’re hunting out goodies to mail to the top bug bashers once the week is over.

If you’d like to get involved, it’s easy:

  1. Check out the source code
  2. Find a bug you’d like to squash in the issue tracker
  3. Fix it, attaching your patch to the issue

That’s it. Easy! For help, and to ask questions of the core development team, please hop on to the IRC channel or email the selenium-developers group.

Update: The Bug Bash is now complete. All we have to do is count up the scores!

A Smattering of Selenium #37B

Let’s see how many announcements there were that didn’t get pushed out in a timely manner today shall we?

Let’s see how many announcements there were that didn’t get pushed out in a timely manner today shall we?

  • Well, there is of course Selenium Conf is coming and you have until Friday to get your proposals in. Last I heard we had 37 which is impressive, but I think 50 should be doable.
  • On the meetup side of things there is
  • SeleniumCamp (English) is coming to Kiev at the end of February. Suddenly we go from no ‘events’ to lots.
  • I’m kinda surprised no one has done this one yet, but a FitNesse Formatter plugin for Se-IDE is up on AMO
  • Selenium Expert is a plugin that brings the wonderful world of inspections, tips, hints, fixes and refactoring to Selenese. Samit is a plug-in making machine.
  • Gorilla Logic have have released a new version of FlexMonkium — with with fully synchronized versioning.
  • SeleniuMspec is a cleverly named formatter for Mspec — though it isn’t distributed as an Se-IDE plugin (which would +1 its coolness)
  • And I quote, Hewlett-Packard (HP) is announcing the discontinuance of HP WinRunner (WR) 7.5, 7.6, 8.0, 8.2, 9.2 (all editions) products.. Is it wrong to say something like ‘Ding, dong, the witch is dead’?. Of course, we wouldn’t likely be here without WR, but who doesn’t love some friendly-ish ribbing? Here is he full notice.
  • Krypton appears to be a cloud service for managing your Se scripts and has a ‘we need testers’ box on their site if anyone is curious
  • And to illustrate that this space seems to have potential, or people think it does at any rate, Test Runnr also does cloud based script management with the added feature of running scripts against the Sauce Labs OnDemand cloud. So if you have a cloud based app that you script with Selenium stored in the cloud and executed in the cloud are you yourself a meta-cloud company?

More tomorrow as we dig ourselves out of the hole.

A Smattering of Selenium #37A

My scheme for catching up with links last week ran afoul of 900 geeks and their families melting the internets at CodeMash 2.0.1.1.

My scheme for catching up with links last week ran afoul of 900 geeks and their families melting the internets at CodeMash 2.0.1.1. So let’s try it again this week.

And assuming I remembered to pay the internet bill, there will be more links tomorrow.

Selenium Conf is coming… get your proposals in!

It has been mentioned at and hinted upon a couple times in the Smattering posts, but nothing has ‘officially’ been mentioned here, so it is time we fix that.

It has been mentioned at and hinted upon a couple times in the Smattering posts, but nothing has ‘officially’ been mentioned here, so it is time we fix that.

The first Selenium Conf is a go!

The logistics are set and we’re starting to sort out the program. Here is what you need to know. Right. Now.

This is a community driven event, though our friends at Sauce Labs are doing a lot of the leg work on the facilities (and food!), as so we want the community to be at the front of the room and not just the usual folks that do the talking circuit. (Unless you really want me to talk all day — which I can as many can attest.) Because of this we have extended the talk submission to Friday, January 21, 2011 11:59 PM (Pacific Standard Time) to expand the both the number of proposals and the number of people proposing talks.

Click here for the talk form

Have a vague notion that you would like to submit something but not sure what we are looking for? I offer these as guide posts to help your thinking:

  • Technical over Theoretical – code will always trump handwaving around slides
  • Experience Reports – On our project, we did X and it did or did not work and here is what we learned as a result
  • No Sales Pitches! – We can get sales pitches at vendor driven conferences. If your talk’s proposal is accepted and then you deliver a thinly veiled sales pitch you should expect to have your mic turned off.
  • Varied Experience – If your talk can appeal to newbies and people on the core team, that is a win in my books

So again, submit your talk – or risk hearing me all day.

Oh, and mark on your calendars Tuesday, February 1 — because we bumped at the proposal date so too is the ticket release date.

A Smattering of Selenium #36B

Second in a week-long series of catch-up posts.

Second in a week-long series of catch-up posts. But before I get to the next batch of links, don’t forget to submit your proposals to speak at the first Selenium Conference. I’m pretty sure we’re going to be trying to pick out the talks next week.

And now I’m off to drive through lake effect snow to get to CodeMash to stress out about my Selenium and Agile Testing workshops. Ah, the life of a consultant is certainly glamorous.

A Smattering of Selenium #36A

I have drastically fallen behind on the link reporting, but not the collecting, so this week’s Smattering will be multi-part.

I have drastically fallen behind on the link reporting, but not the collecting, so this week’s Smattering will be multi-part.

The ‘big’ news falls for this edition is two fold –

  1. We’re having a conference! Selenium Conference 2011 is April 4 – 6, 2011 in San Francisco. See the site for more information. (And I think our friends at Watir are going to be in the same space the day before.)
  2. The Betas are here! The Beta’s are here! As Simon’s post announced, Selenium 2.0b1 has been released to the [unsuspecting] masses. Everyone, including Se-RC users are encouraged to switch their server over to it — its backwards compatible with 1.x and has a tonne of important fixes (like the HEAD request on open, -htmlSuite works again, etc.)

And not to downplay things, but here are the usual assortment of things I think are of interest/value to those automating stuff [with Selenium].

  • Checklists are a Good Thing™ when it comes to testing, so why not automation too? So here is a Unit Test Review Checklist
  • ExtJS is one of those things that seems to come up more often than not on the se-users list which makes me think I’m lucky that none of my clients use it. Testing Extjs Application With Selenium : Few Pointers seems like it would be useful in such an event though.
  • Those of us around the automation space for awhile have often heard about Google’s mythic ‘Small, Medium, Large’ scheme for categorizing scripts — and now they are documented. Combining this idea with tagging of scripts and you’re laughing.
  • Looks like IBM is now starting to care about Selenium in developerWorks with Automated web testing with Selenium which has an assortment of quick things to help people out. And it is IBM so it got lots of love from folks [bots?] on Twitter.
  • Personas is something from the UX community that I’ve started to think more about in terms of what gets automated and/or how the the scripts are organized. The Persona Cheat Sheet will help you start down that road too.
  • Testing Experience magazine recently had an Open Source issue which had some interesting articles. Doesn’t appear to be anything groundbreaking, but my definition of that might be a bit warped.
  • Oooo! All of this year’s GTAC videos in one place. Now you really can pretend you were in India for the week.
  • Go faster! Linking data generation to hotkeys is one of those posts that could be quite useful if you use automation to move quickly around a site so you can manually test it.
  • Selenium IDE 1.0.10 is a ‘stable’ version (unlike 1.0.8 and 1.0.9 it seems) but did introduce one change to how element attributes are handled which I documented in Atoms have come to Selenium IDE
  • Using Python’s unittest module? Consider upgrading to unittest2

Only 46 more links to go through… 🙂