Changes for version 0.18
- THINGS THAT MIGHT BREAK YOUR CODE
- We now 'croak' instead of returning error strings in a number of cases where invalid method calls were made. This should make debugging easier in some cases, and is more aligned with our documentation which already stated that we would croak on errors. Still, your code may depend on the old behavior. https://github.com/aivaturi/Selenium-Remote-Driver/commit/7cdf3dce0fcaa48a883d045368c094351754e85a
- The hover() method on the WebElement has been removed. This is not in the JSON Wire protocol, and the same functionality is avialable with the Driver object's move_to() method. https://github.com/aivaturi/Selenium-Remote-Driver/pull/77
- NEW FEATURES
- Merged Test::WebDriver into this distribution as Test::Selenium::Remote::Driver. Several updates to it are included since the last release. (Mark Stosberg)
- The existence of most (or all?) key testing methods in Test::Selenium::Remote::Driver is now documented, rather than leaving it to users to figure out the magic effects of AUTOLOAD on the methods in the parent class. (Mark Stosberg)
- Added type_ok() to Test::Selenium::Remote::Driver, similar to the method by the same name from Test::WWW::Mechanize (Mark Stosberg)
- Added several methods to Test::Selenium::Remote::Driver that allow you to find an WebElement and test against in a single command. (Mark Stosberg) The test methods for WebElements include:
- type_element_ok - find an element and type into it. element_text_is - find an element and check the text. element_value_is - find an element and check the value. click_element_ok - find an element and click on it. clear_element_ok - find an element and clear it. is_element_displayed_ok - find an element and check to see if it's displayed. is_element_enabled_ok - find an element and check to see if it's enabled.
- Added and started using Test::Selenium::Remote::WebElement. This a sub-class of Selenium::Remote::WebElement. This allows testing methods on the "WebElement" object as well as main '$driver' object.
- Added a pause() function, that sleeps for the given number of milliseconds, just like Test::WWW::Selenium. https://github.com/aivaturi/Selenium-Remote-Driver/issues/60
- new() now accepts a 'default_finder' option to allow you to change the default finder, which is currently 'xpath'. This will be of interest to those who prefer CSS-style selectors, such as jQuery uses. https://github.com/aivaturi/Selenium-Remote-Driver/pull/49
- new() now accepts a 'webelement_class' option to allow you to specify an alternate WebElement class. This could be used to add testing methods or functionality for WebElements.
- Shortcut methods absorbed from Test::WebDriver into Selenium::Remote::Driver:
- get_text() Returns the text for a particular element. get_body() Returns the text for the whole body. get_path() Returns the path part of the current URL.
- New short method to save a screenshot to a file: $driver->capture_screenshot($filename). The name was chosen for compatibility with a WWW::Selenium method of the same name.
- Removed 'get_location()' as an alias in Test::Selenium::Remote::Driver. Please use the more specific 'get_current_url()' instead. It's a more specific name that matches the Selenium API method name.
- Adding text checking methods to Test::Selenium::Remote::Driver
- Run regex's against the entire page source content_like() content_unlike()
- Run regex's against just the "text" of the page body_text_like() body_text_unlike()
- Check page source for strings content_contains() content_lacks()
- Check text of page for strings body_text_contains() body_text_lacks()
- The names are intentionally the same as their Test::WWW::Mechanize counterparts. However, these methods may take an arrayref of regular expressions for improved performance when you want to run multiple tests against the same page.
- Normally Selenium::Remote::Driver would make an HTTP request to the driven browser for each content check. By using an arrayref for multiple checks of the same page, you can avoid the extra HTTP requests and speed up your tests. (Mark Stosberg)
- DOCUMENTATION
- Updated ChangeLog to reflect that debug_on() and debug_off() methods were added in 0.16.
- INTERNALS
- MIME::Base64 is now only loaded if it used for a file upload or taking a screenshot. This will create a minor speed-up for common cases which don't use these features.
- Explained why the code does 'use 5.006; use v5.10.0;', and it's not pretty. The short version: before perl 5.006, the v-string 'v5.10.0' would not be understood. The page http://www.dagolden.com/index.php/369/version-numbers-should-be-boring/ explains it in much more detail than I can. Fortunately, it boils down to this: http://perldoc.perl.org/5.10.0/functions/use.html#use-VERSION
- Added Test::LongString as a dependency to support the new content checking methods.
Modules
Implement commands for Selenium::Remote::Driver
Perl Client for Selenium Remote Driver
Error handler for Selenium::Remote::Driver
Connect to a selenium server
Representation of keystrokes used by Selenium::Remote::WebDriver
Representation of an HTML Element used by Selenium Remote Driver