Official Selenium Blog

July 21, 2010

The Current Status of Selenium 1 and Selenium 2

Filed under: Uncategorized — adam goucher @ 10:16 pm UTC

In the beginning there was Se1, and it was good. But it could have been better — in ways that WebDriver was starting to be good at. Thus the brilliant idea was hatched to merge the two projects.

And then the confusion began. Let’s see if I can start to address some of it via a ficticious conversation that consolidates the Se-user list and #selenium irc channel.

There are a couple annoying bugs in Se-RC 1.03; when is the 1.0.4 release?
Se-RC 1.0.4 is planned for sometime towards the end of July 2010
I’ve heard rumours that 1.0.4 the to be the final release?
Yes. 1.0.4 is planned on being the final 1.x release
That’s crazy talk! I can’t use a .0 or ‘alpha’ release for my mission critical application
Actually, its not all that crazy — and needs a bit more explanation. Se2 is truly a merger of the two projects, in fact 2.0a1 was literally the Se code from the OpenQA repository and the WebDriver code its Google Code repository merged into a new one. This meant that from the first release of the 2.x series, it has contained 100% of the 1.x code which means 100% backwards compatibility. Later releases in the 2.x series have been driven primarily by evolutions of the code that came from WebDriver, not from Se 1.x.
OK, so 100% of Se 1.x is in 2.x; I get that. But how are you making sure that fixes to one get into the other?
Here is another ‘secret’ — don’t tell anyone, but there hasn’t been any pure 1.x development since the merging of the codebases. Every 1.x release since the merger has really been a 2.x release — but all packaged up to make it look like a 1.x release. This is why observant people have noticed a log message that looks something like 11:09:37.507 INFO – v2.0 [a4], with Core v2.0 [a4] when they start up their 1.x server.
So you’ve been releasing alpha code disguised as a stable release? Jerks!
Woah! Relax! Recall what I said above about it being backwards compatible by default. The ‘alpha’ tag is there because the API for the new code is still being developed and features flushed out. The 1.x code is however, still stable and still production quality.
Alright, I take back calling you folks jerks, but I really don’t like the alpha tag. When will it be out of ‘alpha’?
There is only one or two more features to implement (like handling alerts) in the WebDriver code and some cleanup before the betas start. But hope for a 2.0.0 final by the end of the year. And while we’re on the topic of ‘alpha’ vs. ‘beta’, this the team’s working definitions of each.

  • Alpha – APIs can, and likely will change. Possibly in dramatic ways.
  • Beta – With the APIs set, make sure they work with the major browsers
‘Major Browsers’ eh, what exactly does that mean?
Right now it means Firefox, Internet Explorer and at least one WebKit based one (Safari or Chrome)

In short… it is a requirement of Se2 that the server be backwards compatible with Se-RC 1.x and that has already been accomplished by building the code from a common source repository. This means that if you are using Se-RC, you can switch out the server for a 2.x one and have no impact on the execution of the scripts. Plus you can start to experiment with the new stuff that came over from WebDriver.

5 Comments »

  1. “This is why observant people have noticed…” that the size of the maven artefact trebled because it contained a load of dependencies of WebDriver that no-one had bothered to remove from the 1.0.x branch. Including things like XML APIs that are notorious for causing conflicts with other dependencies.

    That gripe aside, this post is really helpful in explaining what’s going on and why Se 2.0 seems to have two different ways of doing everything. Thanks.

    Comment by Rob Fletcher — July 21, 2010 @ 10:23 pm UTC | Reply

  2. When 1.0.4 comes out, it would be good if the release point is easily identifiable in the subversion repository – I recently went looking for the 1.0.3 release point and couldn’t find it.

    Having the source jar available is great (and solved my problem in the end), but the source jar isn’t everything.

    Comment by Robert Watkins — July 22, 2010 @ 3:45 am UTC | Reply

  3. Where does Selenium IDE fit into Se2? I haven’t seen any mention of it in the discussions I’ve read, and am hoping it isn’t getting left behind, cos it’s really useful!

    Comment by Rod — July 22, 2010 @ 8:10 pm UTC | Reply

  4. Hi, perhaps this is not the best place to say this, but I’m too lazy to get a google group account so here it goes:

    I’ve successfully managed to integrate Selenium IDE (1.0.7) into my standalone XULRunner application (over Gecko 1.9.2). To accomplish this I changed some of the Selenium IDE code (mostly browserbot and a custom user extension).

    If you are interested, I can upload the updated Selenium IDE code (or the diff).

    Some of the features I added are:
    1) Support for XUL’s window.openDialog() method.
    2) Support for modal dialogs (i.e. window.openDialog(url, name, “…,modal,…”))
    3) Support for XBL locators (i.e. nested anonid attributes)

    Regards,
    Patricio.

    Comment by pzavolinsky — July 27, 2010 @ 10:38 pm UTC | Reply

  5. Hi,

    I am currently using Selenium 1.0.3 and have a rather big library of tests to support. I have not looked into Selenium 2.0 and WebDriver yet mostly because I kinda like the JavaScript-based approach used in Selenium RC. I find it far more robust and reliable than the other UI automation tools I have used before. So my question is if it will be possible to only complement the existing Selenium 1 RC capabilities with the new Webdriver features. Will I be able to use the new webdriver features and APIs only when I need something Selenium 1.0 can not do in my test scripts (download/upload a file for example), but otherwise use the old JavaScript-based approach?

    Cheers,
    Vladimir

    Comment by Vladimir — September 16, 2010 @ 1:21 pm UTC | Reply


RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Create a free website or blog at WordPress.com.

%d bloggers like this: