2017-12-13 2 views
0

저는 phantomjs 2.1.1, ruby ​​2.3.1p112를 사용하고 있습니다.간호사가 때때로 요소를 찾을 수 없습니다.

Capybara.default_driver = :poltergeist  
    page.find('input[type="submit"]').trigger("click") 
    page.should have_content("#{user.email} created.") 

이 코드는 chorme의와 파이어 폭스의 webdriver에 작동하지만 소리의 요정 때로는 작동하지 않습니다 여기 내 코드입니다. 나는 이유를 모른다. 아무도 도와 줄 수 있니?

+1

크롬이나 파이어 폭스에서 코드가 작동하지 않는 이유는 드라이버가'trigger'를 지원하지 않기 때문입니다. (어쨌든 테스트를하는 경우'trigger'를 사용해서는 안됩니다.) 그 외에도 더 많은 도움을 얻으려면 얻는 정확한 실패 메시지와 상호 작용하려는 HTML의 예를 제공해야합니다. https://stackoverflow.com/help/how-to-ask를 참조하십시오. –

+0

죄송합니다. 크롬이나 파이어 폭스로 실행하면 죄송합니다. – beginerdeveloper

+1

다음으로 폴터 게이트스트와 함께 '트리거'를 사용해야하는 이유를 알아야합니다.이 문제는 간헐적 인 오류도 수정합니다. '트리거 '는 테스트를 할 때 가능한 한 많이 피해야한다. 테스트가 실제로 사용자가하는 일을하지 않기 때문에 의심스러운 가치가있다. –

답변

1

PhantomJS는 더 이상 적극적으로 지원되지 않습니다. Chrome 헤드리스 또는 다른 헤드리스 브라우저 솔루션을 사용하십시오.

+0

그 헤드리스 브라우저에 대한 중요한 작업을 내게 줄 수 있습니까? – beginerdeveloper

+1

잘 모르겠습니다. 나는 너의 질문을 완전히 이해한다. 이것은 헤드리스 크롬입니다 : https://chromium.googlesource.com/chromium/src/+/lkgr/headless/README.md 내가 만났던 또 다른 옵션은 SlimerJS입니다 https://slimerjs.org/ 두 가지 모두 아주 훌륭합니다. 시작하는 방법에 대한 문서 – Dono

+0

고마워요.이게 내가 필요한 것입니다. – beginerdeveloper

관련 문제