A Capybara driver for headless WebKit to test JavaScript web apps
Go to file
Jason Petersen 2fef844031 Fix destructive methods for selecting options
Both `select_option` and `unselect_option` were modifying the
`selected` attribute of their target `<option>` element. This attribute
is meant to be used solely as the marker for which `<option>`(s) is
(are) the default selection(s) in a (multi-)`<select>` element. The
actual _selectedness_ of an `<option>` should be tracked using its
`selected` **property**. Read [the spec][] for more info.

This change removes any code which modified the `selected` attribute of
`<option>` elements, which leaves only the code that modifies the
`selected` property. In addition, `Node#value` needed to be changed to
return `<option>` elements whose selectedness is true rather than just
those with a `selected` attribute.

The tests introduced in the previous commit now pass.

[the spec]: http://dev.w3.org/html5/spec/Overview.html#the-option-element
2012-02-12 10:08:57 -06:00
bin Suppress the webkit_server Dock icon on Mac OS X. 2011-06-14 10:33:53 -04:00
gemfiles Bump to 0.8.0; add json as a dependency 2012-01-20 09:59:29 -05:00
lib Fix destructive methods for selecting options 2012-02-12 10:08:57 -06:00
spec Add failing unit test for selected attribute bug 2012-02-12 10:08:45 -06:00
src Fix destructive methods for selecting options 2012-02-12 10:08:57 -06:00
templates Refactor Connection/Command so that arguments are passed in as a single QStringList instead of in consecutive calls to argumentReceived 2011-02-25 23:29:36 -05:00
.gitignore Adding ability to render webpage to a PNG 2011-07-03 14:10:53 -04:00
.rspec Added rspec options 2011-02-24 23:14:52 -05:00
Appraisals Add appraisal to test across versions; fix support for capybara 1.0 2011-09-30 16:56:14 -05:00
CONTRIBUTING.md add imagemagick dependency to contributing guide 2012-01-27 10:28:57 -05:00
ChangeLog Update ChangeLog 2012-02-03 17:02:41 -05:00
Gemfile Use Bundler gem conventions. 2011-11-11 20:59:24 -05:00
Gemfile.lock Add note about Sinatra. 2012-02-09 13:19:15 -05:00
LICENSE Updated license ane readme 2011-03-09 17:55:40 -05:00
NEWS.md Bump to version 0.9.0 2012-02-03 16:53:24 -05:00
README.md Capybara webkit doesn't listen on 8200 2012-01-19 22:25:53 -05:00
Rakefile Use Bundler gem conventions. 2011-11-11 20:59:24 -05:00
capybara-webkit.gemspec Add note about Sinatra. 2012-02-09 13:19:15 -05:00
extconf.rb Move code that compiles Webkit into separate file to support Ruby 1.9.2 2011-04-15 17:53:31 -04:00
webkit_server.pro Initial commit 2011-02-24 23:13:11 -05:00

README.md

capybara-webkit

A capybara driver that uses WebKit via QtWebKit.

Qt Dependency

capybara-webkit depends on a WebKit implementation from Qt, a cross-platform development toolkit. You'll need to download the Qt libraries to build and install the gem. You can find instructions for downloading and installing QT on the capybara-webkit wiki

Reporting Issues

Without access to your application code we can't easily debug most crashes or generic failures, so we've included a debug version of the driver that prints a log of what happened during each test. Before filing a crash bug, please see Reporting Crashes. You're much more likely to get a fix if you follow those instructions.

If you are having compiling issues please post to the mailing list.

CI

If you're like us, you'll be using capybara-webkit on CI.

On Linux platforms, capybara-webkit requires an X server to run, although it doesn't create any visible windows. Xvfb works fine for this. You can setup Xvfb yourself and set a DISPLAY variable, or try out the headless gem.

Usage

Add the capybara-webkit gem to your Gemfile:

gem "capybara-webkit"

Set your Capybara Javascript driver to webkit:

Capybara.javascript_driver = :webkit

In cucumber, tag scenarios with @javascript to run them using a headless WebKit browser.

In RSpec, use the :js => true flag.

Take note of the transactional fixtures section of the capybara README.

Contributing

See the CONTRIBUTING document.

About

The capybara WebKit driver is maintained by Joe Ferris and Matt Mongeau. It was written by thoughtbot, inc with the help of numerous contributions from the open source community.

Code for rendering the current webpage to a PNG is borrowed from Phantom.js' implementation.

thoughtbot

The names and logos for thoughtbot are trademarks of thoughtbot, inc.

License

capybara-webkit is Copyright (c) 2011 thoughtbot, inc. It is free software, and may be redistributed under the terms specified in the LICENSE file.