절대 URL을 지정할 필요가 없도록 기본 URL을 지정하고 싶습니다. Mechanize가 사용할 기본 URL은 어떻게 지정합니까?Webrat, Mechanize의 "기본 URL"을 설정하는 방법
1
A
답변
3
Webrat을 사용하여 이전에 제출 한 답변을 수행하려면 다음을 수행하십시오. 당신의 오이 env.rb에 :
require 'webrat'
Webrat.configure do |config|
config.mode = :mechanize
end
World do
session = Webrat::Session.new
session.extend(Webrat::Methods)
session.extend(Webrat::Matchers)
session.visit 'http://yoursite/yourbasepath/'
session
end
은 서로 다른 환경에서 사용으로, 더 강력한 만들려면, 당신은 할 수 있습니다 : 당신은 기계화를 사용하는 경우 있음을
가ENV['CUCUMBER_HOST'] ||= 'yoursite'
ENV['CUCUMBER_BASE_PATH'] ||= '/yourbasepath/'
# Webrat
require 'webrat'
Webrat.configure do |config|
config.mode = :mechanize
end
World do
session = Webrat::Session.new
session.extend(Webrat::Methods)
session.extend(Webrat::Matchers)
session.visit('http://' + ENV['CUCUMBER_HOST'] + ENV['CUCUMBER_BASE_PATH'])
session
end
주, Webrat 것 또한 현재 호스트를 올바르게 해석하지 않으므로 리디렉션을 따르지 못합니다. 이 문제를 해결하려면 위에 session.header('Host', ENV['CUCUMBER_HOST'])
을 추가하면됩니다.
방문 및 검색에 올바른 경로가 사용되고 있는지 확인하려면 경로를 사용하는 경우 ENV['CUCUMBER_BASE_PATH'] +
을 paths.rb의 paths_to 메소드 시작 부분에 추가하십시오. 나는 원래 주석으로 게시 시도 스택 오버플로의 자극 UI는 나를 더 나은있어 - 사람이에서 몇 이메일을 가지고있는 경우
def path_to(page_name)
ENV['CUCUMBER_BASE_PATH'] +
case page_name
사과를 : 그것은 다음과 같아야합니다.
1
Mechanize의 경우 지정한 첫 번째 URL이 기본 URL로 간주됩니다. 예 :
이렇게하면 기본 URL을 한 번만 지정할 수 있습니다.
위대한 답변, 감사합니다! – Andrew