Watir 3 Released!

Hello everyone!

I’m happy to announce that Watir 3 has been finally released!
Its biggest goal is to conform even better with WatirSpec making it more
compliant with Watir-WebDriver.

Changelog is quite long, but reading it makes your life easier:
* Browser#status returns an empty string if status bar is disabled in IE9
* Browser#style fixed for IE9
* #execute_script evaluates JavaScript code inside of an anonymous function
- use “return” statement if value is needed by Ruby
* #execute_script returns nil instead of ‘undefined’
* drag and drop fixed for IE9
* Window#current? and Window#== are more robust
* all html elements are now supported (even html5 ones)
* CookieManager removed
* cookies API support added (

https://github.com/watir/watirspec/blob/master/cookies_spec.rb)

* drag and drop API support added (

https://github.com/watir/watirspec/blob/master/drag_and_drop_spec.rb)

* Element#(before|after)? removed
* Element#(before|after)_text removed
* Browser#cell(s) and Browser#row(s) removed
* Browser#Element camelCase methods removed, use under_score methods instead
* Browser#element(s) supports only general attributes like :id, :title,
:class_name, :text, :html and such
* Browser#modal_dialog improved
* Browser#send_keys and Element#send_keys have now same syntax as specified
in WatirSpec
* Element#style returns internal styles only for IE9, inline style will be
returned for IE8
* Table#each removed – use Table#(trs|rows).each instead
* Table#row(s) and Table#cell(s) added which ignore inner tables – use
#td/#tr for all.
* raise an Exception if more locators are specified with :xpath/:css
* searching by :xpath and :css code rewritten
* Browser#textarea(s) method for searching elements
* Element#focus works with IE9
* Element#focused? returns the state of focus on that element
* Element#to_subtype returns Element if non-supported tag found instead of
crashing
* searching by :class will match now partially like other tools behave
(e.g. jQuery)
* Button#text returns value if exists instead of text
* Browser#goto prepends url automatically with http:// if scheme is missing
* Browser#element(s)_by_(xpath/css) are now private methods – use
#element(:css => …) and #element(:xpath => …) instead
* Browser#label supports searching by :for attribute
* Browser#options method for searching elements
* Browser#body, #thead, #tfoot, #tbody, #frameset and #fieldset added
* Browser#window and Browser#windows added implementing window switching
API (https://github.com/jarib/watirspec/blob/master/window_switching_spec.rb
)
* Element#present? returns false if exception is thrown by #exists? or
#visible?
* Element#style returns CSS text instead of OLE object
* Element#text returns an empty string for non-visible elements
* Element#parent returns correct instance of Element class (e.g. Div
instead of Element)
* Element#focus focuses document before focusing on the element
* Element#right_click and Element#double_click added
* Element#to_subtype added which returns specific instance of
Watir::Element subclass
* Element#send_keys added
* Element#eql? as an alias for Element#== added
* Element#tag_name added
* ElementCollection#[] method supports negative indexes like regular Arrays
* ElementCollection#[] returns always an object, even if the index is out
of bounds
* FileField#set and Image#save uses correct Windows file path (e.g. convert
“\”-es into “/”-es)
* FileField#set raises Errno::ENOENT instead of WatirException if file
doesn’t exist
* FileField#value= as an alias for FileField#set added
* Font#color, #face and #size added
* Form#submit triggers onSubmit event and doesn’t submit the form if
event’s callback returns false
* Frame#execute_script added
* Image#file_size, #height and #width return integer instead of a string
* Image#save blocking fixed
* Meta#content and #http_equiv added
* Option code rewritten, causing changes in its API
* SelectList code rewritten, causing changes in its API
* SelectList#(selected_)options returns now Options collection instead of
an array of strings
* Table and its subelements code rewritten, causing changes in its API
* Table#strings and #hashes added
* TextField#label added
* searching elements will find only correct types – e.g. using Browser#div
returns only DIV element even if all other provided selectors match
* all selectors and tag of the element needs to match even if searching by
:id
* supporting html5 data-* attributes by using :data_* for locating and
#data_* for retrieving attribute values
* many other internal changes

Please try it out by executing:
gem install watir

Watir Bazaar was Kick Ass!

I’ve been regularly hosting small conferences for over a decade, starting with the LAWST format and slowly evolving over the years. I just finished hosting the Watir Bazaar. I feel real good about it. One of the best conferences I’ve ever been to. Really excited: everyone had a good time, learned a lot, met a lot of new people, and shared stories about how people are really using Watir to kick ass.

We are wrapping up a release of Watir 4.0, which now uses Selenium technology called WebDriver to drive browsers. That means that Watir 4.0 will work with any browser that Selenium supports. Automatically. This is exciting. Equally exciting is the enthusiasm the community is showing for providing examples and showing others how you can make a testing framework for your application.

We will be documenting several approaches, including using TestUnit, Rspec and Cucumber, each of which has contexts where they become the preferred choices of the community.

Most of us are using page objects of one kind or another with a lot of success, to the point where we really think that everyone should know how to use them, and are working to share our ideas for how to create page objects no matter what kind of test harness you are using.

Speakers at the Test Automation Bazaar

In less than three weeks, the Watir team will be assembling in Austin Texas to kick off our first Watir Conference and Test Automation Bazaar. This event is pulling together Watir users and other Ruby lovers to share techniques and create better tools for automating testing.

Watir team members who are confirmed to attend:

  • Bret Pettichord, Austin
  • Hugh McGowan, Austin
  • Alister Scott, Australia
  • Željko Filipin, Croatia
  • Chuck van der Linden, Seattle
  • Tiffany Fodor, Denver
  • Charley Baker, Denver
  • Jari Bakken, Norway

We also have attendees registering from all over the world, including Hong Kong, London, Virginia, North Carolina, Ohio, California, Ontario.

I’m still talking to lots of people about speaking at the conference. Here is a partial list of people lined up to speak and some of this still needs to be confirmed. (Put on the wiki)

Watir Team

  • Migrating from Watir to Webdriver – Hugh
  • Webdriver Internals – Jari
  • Watir, Selenium and Capybara; and Specification by Example: a Love Story – Alister

Experience Reports

  • Hugh McGowan & the Convio team – Introducing WatirMark at Convio. WatirMark is an MVC testing framework that supports Cucumber and Rspec. This is result of several years of major refactoring, recently released as open-source.
  • Bob Jones, How a Ruby Framework for testing services was expanded to make use of the cloud.
  • Zeljko Filipin – Using Sikuli with Watir Webdriver
  • Chris McMahon – Lessons Learned from Fitnesse; a keyword and wiki based testing framework
  • Bramha Ghosh and Andy Vida – Specification by Example at Grange Insurance
  • Tan Le - Building an Automated Test Framework using Cucumber, Capybara and Gizmo.

Discussions

  • Managing Test Automation – Opened by Rick Hower
  • Sleeps are Evil – Opened by Bret Pettichord
  • Ruby Automated Testing Landscape – Opened by Alister Scott
  • Levels of Quality – Opened by Marek Jay
  • Exploratory Testing with IRB – Opened by Dave McNulla
  • Watir Book and Watir Documentation – Opened by Zeljko Filipin

Charity Workshops

In addition, workshops are being hosted separately on Thursday March 22nd. Alister Scott, Željko Filipin and Chuck van der Linden will be holding a hands-on tutorial on Watir Webdriver; and Cheezy Morgan and Jari Bakken will be holding an advanced workshop on Page Objects. I’m really looking forward to attending these workshops, as well as sending my staff. The registration for these will be separate from the Bazaar, so don’t forget to sign up for this too.

Registration

Register now to attend the Charity Workshop on March 22!

Want to learn about Page Objects and Cucumber?  Do you like the idea of supporting local charities in the Austin area?  Then join us at one or both of our charity workshops before the Test Automation Bazaar!

We’re offering an afternoon workshop on March 22 – the day before the Test Automation Bazaar officially gets underway.  To join in, just donate $50 to one of the list of charities below and sign up using the email form below.  Then, bring a receipt for your donation to gain entry on the day of the workshop.

Charities

Location

The workshop will be held at the Mitte Carriage House:

The Mitte Carriage House is located at 1008C West Avenue at the corner of West Avenue and 11th Street in downtown Austin, situated behind the Mitte Foundation Offices and accessible from 11th Street. Map and directions to Mitte.

Workshop Topics

Page Objects and Cucumber

1:00 PM – 5:00 PM

Are you already familiar with test automation, but want to take your framework to the next level?  Are you interested in learning how to implement Cucumber?  Then join Jeff Morgan (aka Cheezy) and Jari Bakken to learn about Page Objects and Cucumber.

To sign up for the workshop, enter your name and email address and which workshop you’re attending and then select a charity to make a $50 donation.  Space is limited to 25 people, so sign up soon to reserve your spot!

Follow up:  The workshop was a great success!  Cheezy did a great job teaching us about Page Objects and we raised $750 for local charities.  We’re considering putting the video up for an optional donation – more to come on that.

watir-webdriver 0.5.2

Shower Water Snake feeding :)

watir-webdriver 0.5.2 has been released.

Please note that watir-webdriver 0.5.0 brings some backwards incompatible changes:

Additionally, watir-webdriver 0.5.1 removes the following deprecated methods:

  • element_by_xpath replaced by .element(:xpath, '...')
  • elements_by_xpath replaced by .elements(:xpath, '...')

And deprecates the following methods:

Install it with

gem install watir-webdriver

As usual:

Would you like to sponsor the Test Automation Bazaar?

If your company is interested in sponsoring the Test Automation Bazaar, please express interest via the form on the sponsors page on this site.

There are various types of sponsorships available, whether it will be an event (such as happy hour) or some merchandise (such as T-Shirts).

Join us at the Test Automation Bazaar

On March 23rd and 24th (Friday and Saturday), the Watir Conference and Test Automation Bazaar will be held in Austin, Texas. I am hosting this event with Alister Scott, Hugh McGowan and as much of the Watir Team as we can get to Austin. This conference is for the Watir Community and any one who wants to learn more about how people are successfully automating testing. As Watir users are turning to using Selenium’s Webdriver technology, the focus is less on the traditional Watir/IE core and more on using what works, whether that be Watir, Selenium, Capybara or whatever. It’s not even necessarily about web-testing. We are, however, mostly looking for solutions in Ruby and Ruby will be the official language of the conference. We are looking for people to join us and help us make this the best place in the world to learn about effective automated testing. Because we are taking this broad focus, we are calling this a Test Automation Bazaar.

We will follow this schedule on both days:

 9:00 - 12:00    Presentations with moderated discussions
12:00 -  1:00    Lunch
 1:00 -  2:00    Lightning Talks
 2:00 -  4:30    Open Space
 4:30 -  5:00    Group Circle

Therefore we are looking for people who would like to give short, focussed presentations of 10–20 minutes each for the mornings. These will be followed by 5–20 minutes of moderated discussion. The actual time will be determined by the moderators based on the interest level of the audience. We are also looking for 5 minute lightning talks. The morning program and the lightning talks will be single-track, so they will be tightly facilitated. The open space in the afternoon will be multi-tracked and will provide an opportunity for breakout groups, coding demonstrations, and impromptu collaborations. If you have ideas of things you would like to present please contact Alister Scott and me with your ideas. We want to have lots of short presentations from lots of different people.

For some, this may be an unusual format, but it is based on years of experience organizing small conferences. The morning program is based on the LAWST format that we have used in the AWTA workshops and comes from the Context-Driven Testing community. Lightning talks come from the open-source community. And Open Space has been popular in Agile circles. People don’t learn from long lectures, so we are trying to make this as interactive as possible.

If this sounds like fun, please join our mailing list (where we are organizing the conference) and buy a ticket. I am asking everyone who plans to attend to buy a ticket, whether you are host or a speaker or a volunteer. I’ve already bought mine. We don’t have event staff, so we will need lots of help. This is a conference by and for the Watir community.

The conference’s primary financial purpose is to fund the travel expenses to allow the Watir Team to all meet face-to-face. Our team is distributed around the world, so this isn’t easy or cheap. This goal is consistent with membership in the Software Freedom Conservancy a non-profit umbrella group that we are in the process of applying to join. In order to help with this, we are asking everyone attending to buy a ticket, so our overseas contributors can make their plans.

Right now we are offering a limited number of “Early Bird Volunteer” tickets. This includes organizers, speakers, volunteers. We have already started accepting proposals, but will not be selecting “speakers” until very late in the process. We want to work with presenters to help them with their talks and will probably be arranging the program up until the last minute. This is how we have always done it with the Lawst format. Recently I realized that this really amounts to using the Fieldstone writing method to conference planning. So if you have made a proposal and are discussing it with us, please go ahead and consider yourself eligible for the volunteer ticket. We need help with facilitation, particularly from people with experience with the Lawst, Lightning or Open Space formats. We are also looking for people to blog and tweet and video record the event so that the people who can’t make it can benefit. We are also are trying to organize charity workshops for March 22. Maybe you can help with that. Please join our mailing list, where we have been discussing volunteer needs. We also consider any one who has been contributing to the Watir project, answering questions, blogging about what they’ve been doing, to be volunteers. Being a volunteer is as much a state of mind, a willingness to pitch in and help others, rather than just watch the world go by. Buy your ticket today.