2013-03-23 1 views
8

일부 페이지를 테스트하기 위해 rspec을 사용 중이며 click 방법을 사용하고 싶습니다. 그러나 DOM에는 링크 또는 버튼이 없습니다. 그것은 단지 스팬이고 마술처럼 그것은 자바 스크립트와 연결이됩니다.rspec 스팬 클릭

<span class="footerLink feedbackLink"> 
    Feedback 
</span> 

RSpec에 내가 범위를 클릭 수있는 방법 "click_link"와 "click_button"

어떤 아이디어를 제공?

+0

"마술처럼 링크가됩니다"라고 말하면 Javascript로 onclick 처리기를 연결하거나 일부 자바 스크립트 코드가 실행 된 후 요소 유형을 스팬의 앵커로 변경한다는 의미입니까? –

+0

예, "마술처럼"사용하여 죄송합니다. onclick도 붙어 있습니다. 솔직히 나는 단지 거기에 링크를 가지고 더 쉬웠을 것이라고 생각하지만 그것은 현재의 디자인이다 –

+0

가능한 복제본 : [링크 된 또는 버튼 요소를 클릭 오이와 카피 바라] (http://stackoverflow.com/q/3585533/) 841064) –

답변

11

당신은

find('.feedbackLink').click 

find

이 요소를 반환 할 수 있어야하고, 요소 클래스는 #click 방법이있다.

아마도 자바 스크립트에서 클릭을 처리하고 있기 때문에 :js => true을 메타 태그로 추가하는 것을 잊지 마십시오.

+0

답변 해 주셔서 대단히 감사합니다. "feedback feedback", js : true do 및 find ('. feedbackLink'). click을 추가했습니다. 그러나 Firefox를 엽니 다. rspec의 다른 테스트와 마찬가지로이를 건너 뛰고 실행할 수있는 방법이 있습니까? –

+0

@SarahA 불행히도 Javascript에 따라 다르면 브라우저에서 실행해야합니다. 좋은 소식은 브라우저가 Firefox가 아니어도된다는 것입니다. [Poltergeist] (https://github.com/jonleighton/poltergeist)는 몇 가지 헤드리스 옵션 중 하나입니다. –

+1

그래, 당신은 js spec을 무시할 수있다 :'rspec --tags ~ js' 그리고 Capybara (RSpec의 테스터 백엔드)는 https://github.com/thoughtbot/capybara-webkit을 사용할 수있다. WebKit의 headless 버전은 무엇인가? 렌더링 엔진. –