Почему бы не использовать огурец, например?Я делаю это для своего проекта.Преимущества:
- Отличный DSL для описания функций
- с rspec, хорошие совпадения, такие как @ browser.url.should соответствовать "google.com"
- Непрерывная работа
- выделение функций
Небольшое HowTo из моего проекта, я только что создал отдельный проект только с функциями огурца:
Тестирование структуры проекта:
|-- config.yml
|-- features
| |-- login.feature
| |-- signup.feature
| |-- profile.feature
| |-- ...
| |-- step_definitions
| | |-- auth_steps.rb
| | `-- click_steps.rb
| |-- support
| | |-- dom.rb
| | |-- env.rb
| | `-- path.rb
|-- Gemfile
`-- Gemfile.lock
Мой Gemfile:
source "http://rubygems.org"
gem "firewatir"
gem "watir-webdriver"
gem "awesome_print"
gem "cucumber"
gem "cucumber-rails"
gem "rspec"
gem "rspec-core"
gem "rspec-expectations"
gem "rspec-mocks"
env.rb
require 'rspec/expectations'
require 'time'
Before do
@config = YAML.load_file(File.join(File.dirname(__FILE__), '../../config.yml'))["test"]
@@browser ||= case @config["browser"]
when "firefox"
require 'firewatir'
FireWatir::Firefox.new
when "IE"
require 'watir'
Watir::Browser.new
when "Opera"
require 'operawatir'
OperaWatir::Browser.new
when "Safari"
require 'safariwatir'
Watir::Safari.new
when "Chrome"
require 'watir-webdriver'
Watir::Browser.new(:chrome)
end
end
at_exit do
@@browser.close
end
Если вам понадобятся дополнительные описания, я обновлю ответ.
Обновление: как вы видитеПрежде чем создает браузер и at_exit закрывает его.Это работает и на Windows BTW