A Capybara driver for headless WebKit to test JavaScript web apps
Go to file
Aaron Gibralter 182cb2e5b7 Working on frame handling. In terms of the QT code, the non-frame-related
specs pass with these changes (e.g. mainFrame() => currentFrame() and the new
injectJavascriptHelpers() code in WebPage.cpp).

It seems like the current JS+xpath implementation dives in to iframes already.
Is this desired behavior? I wonder if that works with x-domain iframes? I
doubt it...

Also, this design assumes that we only step one frame down at a time...

Lastly, I'm really not sure how QWebKit decides which frame is currentFrame().
For now, I'm hoping to be able to use the QWebFrame setFocus() method. This
may be a dead end though. We may have to have WebPage manually keep track of
the "current" frame.
2011-04-20 18:12:03 -04:00
lib Working on frame handling. In terms of the QT code, the non-frame-related 2011-04-20 18:12:03 -04:00
spec Working on frame handling. In terms of the QT code, the non-frame-related 2011-04-20 18:12:03 -04:00
src Working on frame handling. In terms of the QT code, the non-frame-related 2011-04-20 18:12:03 -04: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 Initial gem 2011-02-26 18:29:01 -05:00
.rspec Added rspec options 2011-02-24 23:14:52 -05:00
Gemfile Move code that compiles Webkit into separate file to support Ruby 1.9.2 2011-04-15 17:53:31 -04:00
Gemfile.lock Move code that compiles Webkit into separate file to support Ruby 1.9.2 2011-04-15 17:53:31 -04:00
LICENSE Updated license ane readme 2011-03-09 17:55:40 -05:00
README.md Added more readme notes on Qt and Xvfb 2011-04-14 16:48:53 -04:00
Rakefile Move code that compiles Webkit into separate file to support Ruby 1.9.2 2011-04-15 17:53:31 -04:00
capybara-webkit.gemspec Bump to 0.1.7 2011-04-15 17:55:30 -04: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.

Dependencies

capybara-webkit depends on a WebKit implementation from Qt, a cross-platform development toolkit. You'll need to download the Qt Framework to build and install the gem.

If you're on OS X, the installer at the above link will set up everything you need. You can download just the framework, as the full SDK isn't required to build the gem. We recommend downloading the non-Debug Cocoa package with just the framework. Note that installing Qt via homebrew takes more than an hour, so we recommend just downloading the precompiled framework for OS X.

If you're on Ubuntu, you can install the libqt4-dev package.

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

Tag scenarios with @javascript to run them using a headless WebKit browser.

About

The capybara WebKit driver was written by Joe Ferris, Tristan Dunn, and Jason Morrison from thoughtbot, inc.

thoughtbot

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

License

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