두 가지 시나리오가있는 간단한 오이 기능이 있습니다. 그것은 기본 로그인을 수행하고 로그 아웃하기 위해 watir-webdriver를 사용합니다. 첫 번째 시나리오 (로그인)가 잘 실행되고, watir 메소드가 문제없이 실행됩니다. 두 번째 시나리오는 (전체 기능을 실행을 통해)을 실행하면, 내가 얻을이 주위에 재생기능에서 두 번째 시나리오를 실행할 때 오이 NoMethodError
이NoMethodError: undefined method `wait_until' for nil:NilClass
이 오류를 던져 두 번째 시나리오의 모든 호출하는 것을 Watir과 - webdriver 방법을 밝혀, 같은 동안 첫 번째 시나리오에서는 메서드가 제대로 작동합니다. 나는 범위 문제가 있다고 가정하고 두 번째 시나리오의 단계 정의에서 "watir-webdriver"를 사용하지 않으려 고 시도했습니다. 두 시나리오에 대한 단계 정의가 포함되었습니다. Ruby 1.9.2에서 모든 보석을 업데이트했으며 Cucumber 0.10.0과 0.10.2를 시도했습니다.
죄송합니다. 나는 루비/오이/와트르에게 아주 익숙하며 게시하기 전에 이것을 몇 시간 동안 정렬하려고했습니다. 모든 조언을 주셔서 대단히 감사합니다!
require "watir-webdriver"
Given /^I have the proper credentials$/ do
@username = "matt"
@password = "abc123"
end
When /^I am on the login page$/ do
@browser = Watir::Browser.new(:firefox)
@browser.goto ("http://dev.example.net")
end
When /^I enter username and password$/ do
@browser.text_field(:class, /x-form-field x-form-text/).set @username
@browser.text_field(:index, 1).set @password
sleep 1
@browser.button(:text, 'Login').click
end
Then /^I should should be granted access$/ do
@browser.wait_until { @browser.text.include? "Global Priorities" }
fail unless @browser.text.include? 'Global Priorities'
end
Given /^I am currently logged in$/ do
@browser.wait_until { @browser.text.include? "Welcome: #{@username}" }
fail unless @browser.text.include? "Welcome: #{@username}"
end
When /^I click the Log Out button$/ do
@browser.button(:text, "Log Out").click
end
Then /^I should be logged out$/ do
pending
end
내 env.rb 파일을 설정하여 브라우저 인스턴스 (모든 시나리오에 공통)를 실행 한 다음 단계에서 새 브라우저 인스턴스를 제거하여이를 정렬했습니다. 감사. – Matt