2012-03-17 1 views
0

나는 webrat과 오이를 연구하고 간단한 예제를 만들려고 노력하고있다. 여기 테스트 구글 검색 페이지

Scenario: Searching for something 
    Given I have opened "http://www.google.com/" 
    When I search for "some text" 

내 단계 정의입니다 : 여기 내 기능 파일입니다 내가 테스트를 실행하고 때

Given /^I have opened "([^\"]*)"$/ do |url| 
    visit url 
end 

When /^I search for "([^\"]*)"$/ do |query| 
    fill_in "q", :with => query 
    click_button "Google Search" 
end 

나는 오류 메시지 :

필드 찾을 수 없습니다 : "Q를 "(Webrat :: NotFoundError)

'fill_in'행에 댓글을 달려면 다른 오류 메시지가 표시됩니다. GE :

버튼 "구글 검색"(Webrat :: NotFoundError)

내가 그것을 어떻게 해결할 수를 찾을 수 없습니다?

답변

2

Webrat이 www.google.com에서 로케일 별 Google 사이트 (for details on redirect)로 리디렉션하지 않는 것이 문제 일 수 있습니다. 예를 들어 나는 캐나다에 거주하고 있으므로 www.google.com으로 이동하면 www.google.ca로 리디렉션됩니다. 따라서 Webrat을 사용하여 www.google.com을 방문하면 '302 Moved'페이지가 표시됩니다. webrat은 검색 페이지로 리디렉션을 따르지 않으므로 'q'텍스트 필드에 액세스 할 수 없습니다.

나는 실제로 어떤 페이지를 확인했는지 확인하기 위해 save_and_open_page 메소드를 시도 할 것입니다.

당신은 내가했다처럼 '(302) 이전'페이지에 끝나는 경우
require "mechanize" 
require 'webrat' 
include Webrat::Matchers 
include Webrat::Methods 

Webrat.configure {|c| c.mode = :mechanize} 
begin 
    visit('http://www.google.com/') #=> 
    fill_in "q", :with => 'some text' 
    click_button "Google Search" 
rescue 
    save_and_open_page 
end 

, 당신은 이후에 다음을 추가 할 수 있습니다 다음과 같은 스크립트를 실행 (다음이 생성 파일 열기) 빠른 검사 등을 할 수 있습니다 방문 :

click_link "here"