문제

나는 Cucumber + Webrat에서 Cucumber + Capybara로 마이그레이션을 시작했습니다. 이제 "내가 볼 것"의 행동은 다소 다른 것 같습니다. 페이지에서 아무것도 변경하지는 않았지만 대부분은 실패합니다. 나는 모든 페이지에있는 일부 물건으로 찾아야하는 스 니펫을 교체했으며 일부 텍스트의 경우 작동하며 다른 텍스트에는 그렇지 않습니다. 페이지의 내용에서 찾은 내용과 그렇지 않은 내용에서 패턴을 찾을 수 없습니다. Webrat는 필요한 문구가 포함되어 있지 않은 경우 페이지 내용이 발견 된 것을 인쇄하는 데 사용되었습니다. 어쨌든 Capybara가 텍스트를 찾으려고 시도한 페이지에서 어떤 텍스트를 얻었는지 보여줄 수 있습니까?

도움이 되었습니까?

해결책

이 단계를 추가 해보십시오.

Then show me the page

다른 팁

Then show me the page Webrat/Capybara의 기본 전화 save_and_open_page 방법. 스테이크와 함께 일할 때 유용하다는 것을 알았습니다.

페이지가 실패 할 때 브라우저가 페이지를 열면 '런치'보석을 사용합니다. GEM 파일에 추가 한 다음 In /Feature /Support /Support 내용이 포함 된 Debugging.rb라는 파일을 만듭니다.

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

페이지에서 JavaScript 또는 Ajax를 사용하고 있으며 무슨 일이 일어나고 있는지보고 싶다면 Poltergeist 드라이버가 DOM에 들어가서 무엇이 잘못되고 있는지 알아내는 데 매우 능숙하다는 것을 알았습니다.

원격 디버깅 옵션으로 capybara 드라이버를 설정하는 경우 :

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

그런 다음 단계에 다음 줄을 넣을 수 있습니다.

page.driver.debug 

현재 DOM 상태 세트로 새로운 크롬 브라우저를 발사하여 콘솔에 들어갈 수 있습니다. (Linux 버전에서는 Chromium을 Chromium-Browser로 Symlink해야했지만 그렇지 않으면 잘 작동했습니다).

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

Then show me the response 저를 위해 일하지 않았습니다 오이 1.1. Capybara의 명령을 사용하여 단계를 작성하는 것이 유용하다는 것을 알았습니다.

print page.html

이것은 DOM의 현재 상태를 출력합니다

브라우저를 사용하지 않으려면 "HTML을 콘솔에 출력하는"응답 표시 "를 사용할 수도 있습니다.

무언가가 실패했을 때 항상 스크린 샷을 할 수 있습니다. 그런 식으로 많은 실패한 기능을 디버깅합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top