watir-webdriver スクリプトで page-object gem を使用しようとしていますが、何か不足している可能性があります。
log_in.rb のコードは次のとおりです。
class LogIn
include PageObject
text_field(:email, :id => 'UserName')
text_field(:password, :id => 'Password')
checkbox(:remember_me, :id => 'RememberMe')
button(:log_me_in, :value => 'Login')
def initialize(browser)
@browser = browser
end
def log_in (email, password)
self.email = email
self.password = password
remember_me
log_me_in
AllDeals.new(@browser)
end
end
私のhome_page.rb
require "./log_in"
class HomePage
def initialize(browser)
@browser = browser
end
def visit
@browser.goto "http://treatme.co.nz/"
end
def go_to_log_in
@browser.goto "https://treatme.co.nz/Account/LogOn"
LogIn.new(@browser)
end
end
これが私のlog_in_test.rbです
require "rubygems"
require "test/unit"
require "watir-webdriver"
require "page-object"
require "./home_page"
class LogInTest < Test::Unit::TestCase
def setup
@browser ||= Watir::Browser.new :firefox
end
def teardown
@browser.close
end
def test_fail
@home_page = HomePage.new(@browser)
@home_page.visit
@log_in_page = @home_page.go_to_log_in
@all_deals = @log_in_page.log_in("test@gmail.com","test")
assert (@all_deals.get_title == "GrabOne Daily Deals - Buy Together, Save Together")
end
end
テスト実行の結果は次のとおりです。
Finished tests in 22.469286s, 0.0445 tests/s, 0.0000 assertions/s.
1) Error:
test_fail(LogInTest):
NoMethodError: undefined method `text_field_value_set' for nil:NilClass
C:/Ruby193/lib/ruby/gems/1.9.1/gems/page-object-0.9.2/lib/page-object/accessors.rb:142:in `block in text_field'
Ruby 1.9 と page-object gem 0.9.2 を使用しています。
手伝ってくれませんか?
また、これらの rb ファイルのそれぞれで、それが参照するクラス ファイルを要求する必要があります。毎回宣言する必要がない方法はありますか?
本当にありがとう。