2011-03-08 3 views
1

카피 바라 (Capybara) 테스트를 처음 접했고 몇 가지 문제가 있습니다.카피 바라 (Capybara)가 자바 스크립트를 찾지 못했습니다.

은 내가 실행하려고 시나리오를 가지고 있고,이 단계의 구현 : 나는 XPath는, CSS는이 링크에 액세스하려고하고,뿐만 아니라 within 구현을 시도

When /^I select the signin link$/ do 
    click_link 'Sign in' 
end 

. 카피 바라는 그것을 찾지 못했고 모든 경우에 Capybara::ElementNotFound 예외를 반환합니다.

자바 스크립트없이 웹 페이지를로드하면 링크가 표시되지 않으며 이것이 카피 바라가 찾을 수없는 이유인지 궁금합니다. trigger 메서드를 찾았지만 작동 방법을 잘 모르겠습니다. 누구든지 trigger의 작업 예제 또는 내가해야 할 것에 대한 다른 아이디어가 있습니까?

답변

3

이 테스트를 실행하려면 selenium webdriver를 사용하고 있습니까? 자바 스크립트를 지원하는 드라이버를 사용하지 않고 특정 요소를 보려면 자바 스크립트가 필요한 시나리오를 실행하려고하는 것 같습니다.

@javascript 
Scenario: My Scenario 
    When blah blah blah 
    ... 

@javascript 태그 테스트를 실행하는 셀레늄 webdriver를 사용하는 카피 바라를 알려줍니다 : 당신의 .feature 파일 당신이해야 할 모든에서

는 시나리오 전에이 줄을 추가합니다. 파이어 폭스를 터뜨리고 테스트를 진행하며 모든 자바 스크립트 기능이 작동하도록합니다. 이렇게하면 테스트가 상당히 느려지므로 ajax-y 및 javascript-y 동작을 테스트하는 데 절대적으로 필요한 경우에만 테스트를 사용하십시오.

즉 아직이 단계를 사용할 수 있습니다 작동하지 않는 경우

Then show me the page 
When I select the signin link 

당신의 검사 즐거움을 위해 해당 페이지의 현재 상태에 새 브라우저에 당신을 위해 페이지를 엽니 다.

+0

감사합니다. 내 머리 속에서 (어떤 이유로) 나는 카피 바라가 마술처럼 브라우저를 열 것이라고 생각했다. 파이어 폭스를 설치했고, 셀레늄 - 웹 드라이버 젬 (jruby -S gem은 셀레늄 - webdriver를 설치했다)을 포함하도록 env.rb 파일을 변경했다. ('selenium-webdriver'필요). – Rebecca

+0

카피 바라가 필요로한다고 생각합니다. 오이를 설치할 때 나는 방금 --capybara 명령을 사용했고 "모든 것이 효과가있었습니다"라고 말하면서 셀레늄 - 웨이트 드라이버가 필요하지 않다고 생각합니다. 그러나 확실히 그것을 사용하는 테스트가 있습니다. 만족 스러울 경우이 대답을 올바른 것으로 받아 들여 주시기 바랍니다. – nzifnab

+0

@Rebecca 모든 테스트가 자바 스크립트에 의존하면'features/support/env.rb'를 추가 할 수 있습니다.'@javascript '모든 곳의 태그 :'Capybara.default_driver = : selenium' –

관련 문제