README.md in poltergeist-0.4.0 vs README.md in poltergeist-0.5.0

- old
+ new

@@ -1,18 +1,19 @@ # Poltergeist - A PhantomJS driver for Capybara # -Version: 0.4.0 +Version: 0.5.0 [![Build Status](https://secure.travis-ci.org/jonleighton/poltergeist.png)](http://travis-ci.org/jonleighton/poltergeist) +[![Dependency Status](https://gemnasium.com/jonleighton/poltergeist.png)](https://gemnasium.com/jonleighton/poltergeist) Poltergeist is a driver for [Capybara](https://github.com/jnicklas/capybara). It allows you to run your Capybara tests on a headless [WebKit](http://webkit.org) browser, provided by [PhantomJS](http://www.phantomjs.org/). ## Installation ## -Add `poltergeist` to your Gemfile, and add in your test setup add: +Add `poltergeist` to your Gemfile, and in your test setup add: ``` ruby require 'capybara/poltergeist' Capybara.javascript_driver = :poltergeist ``` @@ -169,9 +170,54 @@ makes debugging easier). Running `rake autocompile` will watch the `.coffee` files for changes, and compile them into `lib/capybara/client/compiled`. ## Changes ## + +### 0.5.0 ### + +#### Features #### + +* Detect if clicking an element will fail. If the click will actually + hit another element (because that element is in front of the one we + want to click), the user will now see an exception explaining what + happened and which element would actually be targeted by the click. This + should aid debugging. [Issue #25] + +* Click elements at their middle position rather than the top-left. + This is presumed to be more likely to succeed because the top-left + may be obscured by overlapping elements, negative margins, etc. [Issue #26] + +* Add experimental support for using the remote WebKit web inspector. + This will only work with PhantomJS 1.5, which is not yet released, + so it won't be officially supported by Poltergeist until 1.5 is + released. [Issue #31] + +* Add `page.driver.quit` method. If you spawn additional Capybara + sessions, you might want to use this to reap the child phantomjs + process. [Issue #24] + +* Errors produced by Javascript on the page will now generate an + exception within Ruby. [Issue #27] + +#### Bug fixes #### + +* Fix bug where we could end up interacting with an obsolete element. [Issue #30] + +* Raise an suitable error if PhantomJS returns a non-zero exit status. + Previously a version error would be raised, indicating that the + PhantomJS version was too old when in fact it did not start at all. [Issue #23] + +* Ensure the `:timeout` option is actually used. [Issue #36] + +* Nodes need to know which page they are associated with. Before this, + if Javascript caused a new page to load, existing node references + would be wrong, but wouldn't raise an ObsoleteNode error. [Issue #39] + +* In some circumstances, we could end up missing an inline element + when attempting to click it. This is due to the use of + `getBoundingClientRect()`. We're now using `getClientRects()` to + address this. ### 0.4.0 ### * Element click position is now calculated using the native `getBoundingClientRect()` method, which will be faster and less