2010-03-10 4 views
42

나는 오이 + 우리형에서 오이 + 카피 바라로 옮기기 시작했습니다. 이제 "나는보아야한다"는 행동이 다소 다른 것처럼 보입니다. 페이지의 내용을 변경하지는 않았지만 대부분은 실패합니다. 나는 모든 페이지에있는 몇 가지 물건으로 발견되어야 할 스 니펫을 대체하고 일부 텍스트는 작동하고 다른 텍스트는 그렇지 않습니다. 페이지 내용에있는 패턴과 그렇지 않은 패턴을 찾을 수 없습니다. Webrat은 필요한 구를 포함하지 않은 경우에 대비하여 페이지 내용이 무엇인지 인쇄합니다. 어쨌든 카피 바라가 텍스트를 찾은 페이지에서 가져온 텍스트를 보여줄 수 있습니까? 이 단계를 추가실패한 오이 단계에서 카피 바라가 발견 한 것을 어떻게 볼 수 있습니까?

+63

이름이 알려진 기술에 익숙하지 않은 분으로서,이 기사는 내가 좋아하는 스택 오버 플로우 질문 제목입니다. – Oddthinking

+1

그래, 동물원과 관련된 것 같아. – ajmurmann

+1

롤, 가난한 카피 바라! –

답변

29

보십시오 : 당신은 브라우저를 사용하지 않으려면

Then show me the page 
+0

대단히 고마워요! 이것은 많은 도움이되었습니다! – ajmurmann

+0

나는 이것이 매우 오래된 것을 알고 있지만 그 지시어를 추가 한 후에 나는 보석류를 설치해야만했다. 내용이있는 페이지를 시작했다. – rii

5

또한 콘솔에 HTML을 출력 "그럼 나에게 응답을 보여"사용할 수 있습니다.

+1

rack3에 대한 오이가 아닌 명령. –

+6

'인쇄 페이지.html' (단계 정의에서)이 Rails3에서 작동합니다 –

39

Then show me the page은 webrat/capybara의 기본 save_and_open_page 메서드를 호출합니다. 스테이크로 작업 할 때 유용하다는 사실을 알았습니다.

21

페이지가 실패했을 때 브라우저에서 페이지를 열려면 'launchy'gem을 사용하십시오. 은 보석 파일에 추가 한 다음에/기능/지원 내용라는 파일 debugging.rb 만들 : 당신이 당신의 페이지에 자바 스크립트 나 Ajax를 사용하는 경우

After do |scenario| 
    save_and_open_page if scenario.failed? 
end 
+1

이것은 매우 유용합니다. Cucumber와 함께 기본적으로 설치되어야하는 것 같습니다. – dankohn

9

을하고 무슨 일이 일어나고 있는지보고 싶어 , 나는 Poltergeist 운전사가 DOM에 들어가서 무엇이 잘못되었는지 찾아내는 것에 매우 능숙하다는 것을 알았습니다.

경우 설치 원격 디버깅 옵션을 사용하여 카피 바라 드라이버 :

Capybara.register_driver :poltergeist do |app| 
    Capybara::Poltergeist::Driver.new(app, inspector: true) 
end 

당신은 다음 단계로 다음과 같이 쓸 수있다

page.driver.debug 

와 함께 새로운 크롬 브라우저를 발사 현재 DOM 상태가 설정되어 콘솔에서 사용할 수 있습니다. (리눅스의 제 버전에서는 chromium-browser에 chromium을 심볼릭 링크해야했지만 그렇지 않으면 잘 동작했습니다).

소스 정보 : http://jonathanleighton.com/articles/2012/poltergeist-0-6-0/

7

Then show me the response오이 1.1 나를 위해 작동하지 않았다. 나는 카피 바라의 명령을 사용하여 단계를 작성하는 유용하다고 :

print page.html

이 일이 실패했을 때 당신은 항상 스크린 샷을 취할 수 있었던 DOM

0

의 현재 상태를 출력합니다. 그렇게 많은 실패한 기능을 디버깅합니다.