2011-12-23 2 views
12

저는 capybara, capybara-webkit, capybara-screenshot을 오이와 함께 사용하고 있습니다. (루비 1.9.3은 3.1.3를 레일) 및 Capybara.javascript_driver = :webkit 또한 불행하게도 어떤 이유로 에러 스크린 샷 그냥 example.com을 캡처에 성공하지 못할 것입니다 @javascript와 오이 사양을 실행 env.rb Capybara-webkit이 example.com을 열려고 시도합니다.

설정됩니다.

실제로 열려고하는 URL은 내 모델 중 하나에 대한 레일 라우터 결과와 함께 생성됩니다. with visit products_url

그렇다면 example.com을 쿼리하는 것을 어떻게 피할 수 있습니까?

모든 입력을 환영합니다.

Capybara.run_server = true 
Capybara.server_port = 7787 
Before '@javascript' do 
    Capybara.app_host = "http://127.0.0.1:#{Capybara.server_port}" 
end 

답변

11

대신 visit products_path를 사용해보십시오 : - 주석이 엉망해서


여기에 내가 해결책이었다 찾을거야. "Gotchas"섹션의 절대 URL을 README으로 사용하지 않는 것이 좋습니다.

+0

사용 products_path은 처음부터 오류로 종료 일. 그래서 내 현재 설정입니다 : Capybara.run_server은 = 사실 Capybara.server_port = 7787 전에 '@javascript' Capybara.app_host = "http://127.0.0.1:#{Capybara.server_port}" 끝을 이 외에도 http://www.emmanueloga.com/2011/07/26/taming-a-capybara.html capybara 및 레일이있는 몇 가지 함정을 해결하기 위해 seesm 3.1 – pagid

+0

웹킷에 대해 gotchas가 적용되지 않는 것으로 보입니다. 절대 URL에 대해 이야기하기 –

1

나를 위해, 많은 운동화 "gotcha"(그리고 나는 Rspec와 함께 Capybara를 사용하고있었습니다)가있었습니다. 원래 스펙에 내가 있었다 :

visit "foos/5" 

이것은 Rack::Test으로 잘 작동하지만 JS 상호 작용을 테스트하기 위해 webkit 드라이버로 전환하고 싶어 할 때, 나는 URL로드 할 수 없습니다 그 예외 (가지고 : 파일 : /// 제품 (Capybara :: 드라이버 :: Webkit :: WebkitInvalidResponseError)).

은 내가 한 것은 내가과 같이 방문에 전달 된 경로 변경했다 :

visit "/foos/5" 

SUCCES을!

1

또 다른 잠재적 인 문제가 있습니다.이 문제가있는 다른 사람들을 위해 게시했습니다. 나는 액션 캐싱을 테스트하고 있었고, Rails의 핵심은 "views/www.example.com/products"처럼 보였다. 이는 products_path를 URL로 사용하는 경우에도 발생합니다. 이렇게하면 서버 키 이름을 설정해야 할 필요가 있으므로 미리 캐시 키를 알 수 있습니다. 가 URL로드 할 수 없습니다 : 파일 : 나는 또한 app_host를 구성하면 (카피 바라가 : 드라이버 : 웹킷 :: WebkitInvalidResponseError가) 그러나 그것은 /// 제품을 시작

관련 문제