Fetching contributors…
Cannot retrieve contributors at this time
563 lines (453 sloc) 26.7 KB
== Version 1.8.1 - 2011/04/07
=== IE improvements
* Added #frames method (Ivan Kabluchkov).
* Added Frame#exists?, #src, #name and other Element methods (Ivan Kabluchkov).
* Added multiple locators support for #frame method (Ivan Kabluchkov).
* Added *_no_wait methods (Ivan Kabluchkov).
=== Firefox improvements
* Nothing
=== General improvements
* Using Watir::Util for better compatibility with ActiveSupport used by Rails 3. Closes (Jarmo Pertman)
== Version 1.8.0 - 2011/28/02
=== IE improvements
* Improved speed of #click_no_wait by not loading RubyGems (Jarmo Pertman)
* Added check to maxlength so we don't clobber any incoming js events. (Charley Baker)
=== Firefox improvements
* Removed dependency for ActiveSupport, making it possible to use FireWatir with Rails 3 (Jarmo Pertman)
* Removed :waitTime option and try to handle better firefox startup (Jarmo Pertman)
* Added #exists? with alias #exist? to FireWatir::Firefox browser object (Jarmo Pertman)
== Version 1.7.1 - 2011/01/10
=== IE improvements
* Fixed Watir::IE.start_process/new_process. Doesn't completely close (Jarmo Pertman)
=== Firefox improvements
- Nothing
Whole Changelog is available at
== Version 1.7.0 - 2011/01/06
=== IE improvements
* Fixed Watir::IE#close_all to close all IE windows, even the ones with tabs. Closes (Jarmo Pertman)
* IE#wait waits now again until browser has a state of READYSTATE_COMPLETE due to strange timing issues. Closes (Jarmo Pertman)
* Added CSS3 selectors with usage like browser.text_field(:css => "input[name='text1']") (Jonas Tingeborn)
* Updated bundled version of AutoIt to Closes (Jarmo Pertman)
Note: If you want to use this version of AutoIt, you'll need to manually uninstall all previously installed Watir and possibly manually installed AutoIt versions first.
When you run your Watir scripts, it will automatically install and use the new version.
=== Firefox improvements
* Fixed Element#exists? for cases where nested elements were used for locating (Alok Menghrajani)
* Ignore uppercase tags in XHTML when searching for elements (Alok Menghrajani)
=== General improvements
* Return Element#id correctly when using Element#when_present and friends methods. Closes (Jarmo Pertman)
Whole Changelog is available at
== Version 1.6.7 - 2010/10/26
=== General improvements
* added new waiting methods for Watir::Element: #when_present, #wait_until_present and #wait_while_present (Jari Bakken and Jarmo Pertman)
* added new waiting methods for Watir::IE and Watir::Firefox: #wait_until and #wait_while (Jari Bakken and Jarmo Pertman)
* added method #present? for Watir::Element (Jari Bakken and Jarmo Pertman)
* deprecated old waiting methods in Watir::Waiter which will be removed in some future version - use Watir::Wait instead (Jarmo Pertman)
=== IE improvements
* removed Watir::Simple (Željko Filipin)
* #click_no_wait was not working with frame elements. Closes (Jarmo Pertman)
=== Firefox improvements
* get_attribute_value now works with attributes named something like "foo-bar" (Alan Shields)
=== Cleanup & Maintenance
* cleaned up repo at GitHub
* merge licenses into one (Željko Filipin)
* Rakefile works now under non-Windows systems too (Alan Shields)
* Removed datahandler.rb
Whole Changelog is available at
== Version 1.6.6 - 2010/10/2
=== IE improvements
* #elements_by_xpath uses now Nokogiri's xpath method instead of search (Matt Baker)
* Element#style returns now currentStyle. Closes (Jarmo Pertman)
* Element#visible? doesn't return false anymore for disabled elements (Charley Baker)
* TH elements texts are included into Table#to_a results. Closes (Jarmo Pertman)
* Added TableRow#to_a method which returns an array of the texts of the cells for the table row. Closes (Jarmo Pertman)
* Added an optional numeric parameter max_depth for Table#to_a and TableRow#to_a for getting text values for nested tables. Closes (Jarmo Pertman)
* #close will close the browser even if #wait raises an Exception. Closes (Jarmo Pertman)
* Added #element and #elements methods for locating non-specific elements. Closes (Hugh McGowan)
* #click_no_wait fixes and improvements. Closes and (Jarmo Pertman)
* #wait will raise a Timeout::Error if page hasn't been loaded within 5 minutes. Closes (Bret)
* Fixed a problem when #wait blocked forever. Closes (Jarmo Pertman)
=== Firefox improvements
* Added close_all method to firefox. Closes (Angrez)
* Fixed status method for firefox. (Angrez)
* Fixed url method for firefox. Closes (Alister Scott)
* Added JRuby support (Ian Dees)
* Forcing to use ActiveSupport 2.3.9 due to incompatibilities with newer versions (Jarmo Pertman)
=== Cleanup & Maintenance
* Some rdoc cleanup (marekj)
* README changes (Željko Filipin)
* Removed Watir::Utils (Jarmo Pertman)
* It is now possible to execute unit-tests within gems with `rake test` (Jarmo Pertman)
* Don't output unnecessary information to stdout in FireWatir unit-tests (Željko Filipin)
* Update the 3 gem projects to each use the common readme file (Bret)
Whole Changelog is available at
== Version 1.6.5
Charley Baker was release manager for this release of Watir.
=== New Features (Both IE and Firefox)
* Browser.attach is now available.
* Browser.options and Browser.set_options are now available.
* Add support for definition lists, this adds these methods:
dd, dt, dl, dds, dts, dls. (Jarib)
* Added support for "visible?" method to both IE and Firefox. Closes (Tony)
* Hidden#visible? should always return false. (Jarib)
* New method execute_script.
* Add ElementCollections#size as alias of length. (Jarib)
* Some camelCase => snake_case renames (with aliasing). (Jarib)
Image#fileCreatedDate => file_created_date
Image#fileSize => file_size
Image#hasLoaded? => loaded?
SelectList#getAllContents => options
SelectList#getSelectedItems => selected_options
SelectList#clearSelection => clear
SelectList#includes? => include?
TextField#dragContentsTo => drag_contents_to
Radio/Checkbox#isSet? => set?
* Patch for winclicker fix. (Derek Berner)
* Add support for using a Regexp as the third argument (value) when locating
checkboxes/radio buttons. (Jarib)
* Add support for <strong> element. (Jarib)
* Add support and tests for <em> element. (Jarib)
* SelectList#select now supports Numeric arguments. (Jarib)
* Additional inspect implementations for both IE and FF.
Closes (Jarib)
* Add ElementCollections#{first,last}. (Jarib)
* Fixes for running on Ruby 1.9. (Jarib)
=== Firefox Improvements
* SelectList#set is now defined for Firefox. Like with IE, it is an alias for
SelectList#select. Closes (Bret)
* Element collections are now enumerable. This allows methods such as @select@
and @map@ to be used with methods such as @divs@ and @links@.
* FireWatir.attach is now available, analogous to IE.attach. Includes
* Some Javascript errors that were being ignored, now raise Ruby exceptions.
* Added event handler which resets the context of document
* Fix bug that occurred when new page was automatically loaded. (Angrez, 3ef8b6)
when page gets loaded automatically (Angrez)
* Changed code to use document_var, body_var, window_var, browser_var instead of
"document", "body", "window", "browser" variables. (Angrez)
* Changed code to replace every quote (") in xpath query with (\") so that it
doesn't give error while executing the xpath query (Angrez)
* Fire onchange event for FireWatir file fields. Closes (Jarib)
* Fixes for running and closing Firefox on Mac OS X (Jarib)
* Added functionality to allow Watir::Browser.attach with no arguments to open
a new firefox window rather than taking over the existing focused window (Rob Aldred)
* Also modified some setup functions to correctly handle closed browsers,
browserless windows and others (Rob Aldred)
* Add test and implementation for Firefox#status (Jarib)
* 2 problems fixed with .click (jubishop)
a) When chaining together element calls the @container becomes an
HTMLElement, but there's no container_var defined for HTMLElement
b) When an <a tag has no href then element_type was returning nil.
* Fix bug in Firefox#document. Change creating error class by eval in jssh
socket to creating class with ruby. (Ethan)
* Add support for Browser#frames. (Ethan)
* Make the version dependencies for Watir and FireWatir be the same. (This change
will also be backported to 1.6.3.) (Bret)
=== IE Improvements
* Allow attach timeout to be accessed as an option. Thus:
IE.set_options :attach_timeout => 5.0
This was previously available as class method.
* Fix for Autoit auto-registration. (Bret)
* Fixes,,
* Fix for IE6, 7 and 8 file uploads. (Zeljko Filipin & Jarmo Pertman)
* Replaced REXML with Nokogiri for xml parsing. Fixes (Aidy Lewis)
* Option now supports :label attribute
* Patch for IE.close causing WIN32OLE errors (Tony)
* Watir::IE.inspect issue fixed: (Jarib)
* Fix for Browser#execute_script on IE7. (Jarib)
* Removed ActiveSupport dependency. (Jarib)
* Fix Browser#status so it works even when the status bar is not visible. (Bret)
* Fix bug when using "each" with nested tables. (Alan Baird)
* Now uses UTF-8 codepage by default (Jarib)
=== Structure Improvements
* Lots of rework of the FireWatir code, including removing duplication and
dead code, renaming variables, and simplifying code. Also a few performance
improvements. (Bret & Charley)
* Rename source file names for consistency.
=== Unit Tests
* Add tests demonstrating known bugs.
* Make the "window" tests run more reliably. (Bret)
* Relocate unreliable tests. (Bret)
* Tag tests that are known to fail on IE or Firefox.
* Fixed one test that was failing on non-English platforms. (Jarib)
* New Rake task (:test) runs all tests. (Jim Matthews)
* Use ci_reporter to provide more detailed test results for
Use xls transform to format results. (Jim Matthews)
* Add WatirSpec submodule + load it in Rakefile if available. (Jarib)
== Version 1.6.2
* Changed the method of setting Watir::Browser.default when the user does not
specify a browser option. This fixes the problem where it would be 'ie' on
* Fixed FireWatir's "text" method to return the same character's as Watir's
method. It had been returning extra spaces and other characters.
Fix included contribution from Tony. Closes #266
* Fixed "activesupport" error. Users no longer need to have the latest version
== Version 1.6.1
* Fixed install/load errors reported by Marek J and Tony.
== Version 1.6.0
This release merges the Watir and FireWatir projects. It contains many
compatibility fixes,
as well as a new browser-independent interface your tests can use to allow you
to specify the browser at run time.
We have also updated our existing support for modal dialogs so that it now works
with Ruby 1.8.6. Users who have been using Ruby 1.8.2 because of this will now
need to upgrade to Ruby 1.8.6.
This release also contains many other fixes. Details below.
Watir and FireWatir are still distributed as separate gems. Installing the
Watir gem will automatically install FireWatir. Both gems now use common code
contained in the "commonwatir" gem.
This release is fully backwards compatible with previous versions of Watir and
FireWatir. Your existing scripts should continue to run without change.
=== Installation
To install both Watir and FireWatir:
gem update --system
gem install watir
To only install FireWatir (e.g. on Mac or Linux)
gem update --system
gem install firewatir
To enable Firefox to work with Watir, you will also need to install the
JSSH plugin. See this page for details.
=== New Features
You can now replace references to (or
with to allow you to
specify which browser to run your tests against at run time. Details:
It takes two lines of code to allow to support an additional Watir
implementation. The two lines necessary for SafariWatir (on Mac) are provided.
(See commonwatir/lib/watir/browsers.rb).
In addition to 'browser', options supported by (on IE only right now)
are 'speed' and 'visible'.
Unit tests no longer run from the gems. You will need to get the source if you
want to run the unit tests.
=== Compatibility Fixes
* FireWatir now raises Watir exceptions.
* FireWatir now supports multiple attributes for most page elements.
* Watir now supports multiple attributes for most page elements.
* Added support to FireWatir for many more element types.
* Added Radio#checked? and Checkbox#checked? methods to FireWatir.
* Now will click a radio button (as does IE) even if it
is already set. This is important if there is javascript attached to the
radio button.
* TextField#set now respects the maxlength of the field. Previously, FireWatir
could overrun the limit. FireWatir::TextField.maxlength now works correctly.
* Watir::SelectList#includes? and #selected now accept regexp arguments.
This functionality is still missing from FireWatir, but it is in Celerity.
From Jari Bakken. Fixes #261.
* FireWatir::Element#disabled is fixed.
* Added method Watir::Table#row_count_excluding_nested_tables. This works like
* Watir#wait_until is now available to FireWatir.
* Fixed versioning. With FireWatir 1.2.1, FireWatir::Firefox::VERSION
actually reported '1.1.1.'.
* FireWatir will now automatically starts Firefox on Mac (as it did previously
on Windows and Linux).
=== IE Fixes
* Fix for: form field named "submit" causes "submit" method to not work.
Closes #223.
* Calling now scrolls the page to the control, as with other
controls. Thanks to Jonathan Kohl for the fix. Closes #172.
* Fixed ie.speed, which was returning ":fast" when speed was actually ":zippy".
* Fix for visible? method not being inherited correctly. From Alan Baird.
Closes #253
* Added ie.forms method. Thanks to Jarmo P.
* Fix for "undefined method 'document'" error that was occuring when loading
pages with frames that were slow to load. Reported here:
* Fixed accessing checkboxes and radio buttons using :ole_object on IE.
Closes #217.
=== Unit Test Improvements
* Unit tests no longer can be run from a gem install. Rather, you need to run them
from a complete source tree.
* New rake targets for Watir: test and cruise, each of which runs the core tests.
* Numerous fixes and cleanup to the unit test suite.
* The unit tests both both Watir and FireWatir now use the new
interface and can be run
against either implementation (Watir::IE or FireWatir::Firefox or others for
that matter). See this page for details.
* Added tagging to unit tests. Tests which have known failures are now tagged
as ":fails_on_ie" or ":fails_on_firefox".
* Added coverage modes for running unit tests. These are documented on the wiki
page cited above.
* Updated tests that were still using obsolete Watir 1.0 interfaces.
* Started merging the Watir test suites into commonwatir.
* General test clean up.
* Test failures due to not setting IE security settings will now issue
helpful error message telling you how to fix your IE security settings.
=== Structural Changes
* Moved library files into "lib" directories. Now Watir is like all the other
Ruby projects.
* Moved FireWatir classes into the FireWatir module.
* Removed examples. They are now on the wiki.
* Simplified code by removing duplication and unused code.
* The watir-console now works from the development tree.
* Renamed IE.defaults to IE.options and IE.defaults= to IE.set_options.
* Added top-level "rake gems" target. Only works on windows right now.
== Watir 1.5.6
To install this:
"gem update --system"
"gem install watir"
Installer Fix
This update fixes an installer problem in Watir 1.5.5 that affected some users.
If you installed 1.5.5 without error, there is no reason to get this update.
== Watir 1.5.5.
New Features
* Multiple attributes can now be specified for these elements:
li, ul, map, area, h1, h2, h3, h4, h5, h6. (This was claimed to work earlier,
but never did.)
Bug Fixes
* Statements such at ie.table().row() now work (no longer private).
* Fixed bug with images method when used with anything but ie. (Paul Rogers)
E.g. ie.div().images.
* Fixed intermittent bug with ie.file_field().set. (Tomislav Car)
* When installing Watir 1.5.4 you could get extra, confusing
questions. This shouldn't happen anymore.
* Improved error message when element is not found using multiple attributes.
* Made examples and unit tests somewhat better examples: removed unnecessary
"include Watir" statements; started using "browser" instead of "$ie"; use
new methods 'goto_page' and 'uses_page' (this last improves performance of
unit tests).
* Moved brittle unit test that was causing cascading failures; renamed another
that was causing a namespace collision.
== Version 1.5.4
New Features
* Add new speed, :zippy. This is like fast, but, in effect, it does a TextField#value= instead of a TextField#set. If you have specific text fields that you never want this to happen to, use ie.text_field(:how, what).requires_typing.set instead.
* Add support for Chinese input as supplied by Vincent Xu.
Bug Fixes
* Add dependency on windows-pr 0.6.6, which seems to be necessary on Vista.
* Fix for bug in IE.close_others provided by Paul Taylor.
* Fix for error when using verify_equal with ci_reporter, provided by Marcog.
== Version 1.5.3
Bug fixes and minor cleanup.
* Fix text areas bugs.
* Fix warning messages caused by redefined constants.
* Break out watir.rb into multiple files.
* Fix [WTR-90] error when running tests when installing gem.
* Fix tests.
* Update documentation.
Major Changes in 1.5.2
Support for IE's Modal Dialogs.
Any method can be used to specify an element (:text, :class, etc.).
ie.button(:class,'Button Menu').click
ie.div(:text, 'Type').text_field(:class, 'TextInput-input').set('my value')
ie.button(:text, 'Save').click
One can now use multiple attributes to specify an element.
ie.span(:class =>'Label', :text => 'Add new').click
Other Changes in 1.5.2
* Migrated IE.new_process from watir/contrib and improved its reliability. We now recommend IE.new_process over as a way to avoid numerous errors detailed in
* Added IE.start_process. This works like IE.start, but uses the new_process mechanism to start IE.
* Added IE.new_window and IE.start_window. This are synonyms for and IE.start.
* Added dependency on the win32-process gem.
* Added IE.each, which iterates through the various IE windows currently open.
* Updated WindowHelper and watir/dialog to work with IE7
* The wait method was completely rewritten. This should fix various errors seen in and
* Removed the "spinner".
* Fixed bug in Element#parent and updated unit test.
* HTML value attributes are checked as strings before converting, updated unit tests.
* Watir::wait_until clean up.
* Fix for winclicker when installed in directory with spaces.
* Rdoc changes and updates.
* A workaround for frame access errors in the wait command, swallowing access denied errors and rethrowing if other WIN32OLERuntimeErrors show up.
* Add support for "li" tag.
* Fix for bug in element_by_xpath.
* "Wait" method now is called recursively into nested frames.
* Rdocs now only include the core Watir library (not contrib).
* Improve error reporting when IE#modal_dialog isn't found.
* Add method "ModalDialog#exists?"
* Add Watir::Win32.window_exists? method.
* Fix for winclicker setComboBoxTest and setTextBoxText
* Improved Support for IE7
o Fix for IE7 on ie.exists?
o Fix for IE7 with winclicker.
o Fix for check_for_http_error in IE7.
* Fix for IE7 on ie.exists?
* Rubyw is now used in winclicker to bypass command line windows.
* Autoit is registered before being used.
* Watir now checks for the right version of Ruby before loading our customized Win32ole library.
* ie.file_field has been fixed and unit test updated.
* rdoc generation has been fixed.
* page checker has been moved from the default behavior into contrib/page_checker.rb
* Fix for intermittent crashes occuring when using Watir with Ruby version > 1.8.2.
* Fix for
This fix prevents the Watir-modified library (compiled against 1.8.2) from being used.
* Added Element#parent
* Add new methods Element#after? and Element#before?
* Added support for relative specifiers. E.g.:
link = $ => 'addtocart', :after? => @headline)
* Removed NAVIGATION_CHECKER from Watir.rb, added to contrib. This fixes rdoc generation and stops the frame access exception being thrown in the default installation.
* Open-code calls to def_creator, for easier debugging and rdoc generation of factory methods.
* Winclicker fix for too many callbacks defined error.
* Patch for rspec API changes
* You can now reference an iframe using IE#frame(:id, 'whatever'). Jira 109
* Added 'map' and 'area' element support.
* Moved Watir::Assertions into new file watir/assertions.rb so they can be used outside test cases.
* Fix and unit test for Jira 114, related to tag in HTML source.
* Added SelectList#include? and SelectList#selected?
* Added Element#visible?
* Fixes all reported bugs with contains_text.
* New Watir::TestCase#verify method (and verify_equal and verify_match).
* The click_no_wait method now works in frames.
* Released new IE.new_process method to 'watir/contrib/ie-new-process'. This starts up a new IE process for each IE window, which is really how it should be done. To close these use IE#kill. Any one getting intermittent RPC errors when opening windows may want to use this instead.
* Several examples have been updated.
* Moved enabled_popup to a new contrib directory.
* Added several tests.
Changes in 1.4
fix method name for accessing class name of P/Span/Div (change from style to class_name)
fix for bug 2152 (frame index in show_frames off by 1)
added alt as a property to image
added file_fields
fixed TextArea#to_s
moved reset button to buttons class
add IE#send_keys
frames can now be referenced using regexps and ids
added IE#minimize, IE#maximize, IE#restore
onChange and onBlur events now triggered by TextField#set
added default option to set for checkbox
added colspan method to tablecell
fix for bug reported by Scott P, wrong objects are sometimes found
fixed Bug with radio/checkboxes doing multiple fireevents
fix for table, id and reg exp
wait for page load before returning from IE.attach
update to select_list -- new interface still in progress
added .show method to iterators
fix for flashing objects in table cells
added flash for forms
flash returns nil instead of the curious '10'
removed ScreenCapture module from IE class
Changes in 1.3.1
Added P tag support
Bug fix for images and links in frames using each
Bug fixes for image#save
Changes in 1.3
added new row_values and column_value methods to tables
added ability to save an image - ie.image(:index,1).save('c:\temp\mypic.gif')
new method, html that applies to objects, not just a page - ie.button(:index,1).html => <INPUT id=b2 title="this is button1" onclick="javascript:document.location='pass.html';" type=button value="Click Me" name=b1>
now throws a NavigationException on 404, 500 errors
iterators now mixin Enumerable
added support for labels
added support for frames by index
added screen_capture
added hidden field support, and iterator method
table cells, span and div now act as containers, so can do ie.div(:index,1).button(:index.2).click
added index to print out from show_xx methods. Link shows img src if an image is used
added onKeyUp and onKeyDown to text_fields#set
installer now installs AutoIt to deal with javascript popups, file uploads etc
the spinner is now off by default
bug fix in text_fields iterator where it wasnt iterating through password or text ares. Added test for password fields
bug fix for flash for tables
bug fixes for images and links in cells