2009-12-31 2 views
4

웹 응용 프로그램을 테스트하기 위해 Cucumber, webrat 및 selenium을 사용하고 있습니다. 나는 '을 사용한다. 변경 사항을 확인하기 위해 "something"'을보아야한다. 그러나, 많은 곳에서, 검증 될 텍스트는 단지 숨겨진 것에서 볼 수있는 것으로 바뀐다 (이는 숨겨진 클래스를 그 자체 또는 조상 중 하나로부터 제거함으로써 야기 될 수있다). 이 경우 위의 테스트에서는 실제로 변경 사항을 확인하지 않습니다. 'response.should_not have_tag ("div # myId.hidden")'을 사용하려고하는데 작동하지 않습니다. 이것을 테스트하기위한 권장 방법은 무엇입니까?Cucumber + webrat + selenium, 어떻게 숨겨진 텍스트를 무시하나요?

환경 : 오이 0.3.11, 셀레늄 클라이언트 1.2.17,

0.6.0 webrat 감사합니다.

Then /^the element matched by "([^\"]*)" should be visible$/ do |locator| 
    selenium.should be_visible(locator) 
end 

Then /^the element matched by "([^\"]*)" should not be visible$/ do |locator| 
    selenium.should_not be_visible(locator) 
end 

은 루비로 그 step_definitions/디렉토리에 파일을 넣어 : 경우에

답변

5

다음으로 나는 그 두 개의 사용자 정의 단계를 사용합니다.

따라서, 귀하의 경우, 대신 가 그럼 난 "뭔가" 사용 를 볼 그런 다음 "무언가"에 의해 일치하는 요소는 볼 수 있어야합니다.

+0

로케이터가 CSS 선택기 또는 페이지의 일부 텍스트 여야합니까? 요소 DIV # MYID를 찾을 수 없습니다 (셀레늄 : CommandError) 내가 그 유효한 CSS를 선택 확신 "DIV 번호에 대한 myid" be_visible –

+0

selenium.should이 오류가 발생합니다. 무엇이 잘못되었을 수 있습니까? –

+0

"css = div # myId"를 사용하십시오. 자세한 내용은 http://seleniumhq.org/docs/04_selenese_commands.html#locating-by-css를 참조하십시오. –

3

대신 have_selector ("div # myId.hidden")를 사용할 때 작동합니까?

+0

을 참조하십시오. 고마워. –

+0

환영합니다, 새해 복 많이 받으세요 :-) – schmitzelburger

1

허용되는 솔루션은 다음과 같은 환경에서 작동하지 않습니다. (0.10) 레일 (3.0.0), webrat (0.7.3) 셀레늄 - 클라이언트 (1.2.18), 오이

솔루션을 그 작품에 포함 된 예는 다음과 같습니다.

Then /^the element matched by "([^\"]*)" should be visible$/ do |locator| 
    selenium.is_visible(locator).should be_true 
end 

Then /^the element matched by "([^\"]*)" should not be visible$/ do |locator| 
    selenium.is_visible(locator).should_not be_true 
end 
+1

'셀레늄'은 어디에 설정되어 있습니까? 나는 "정의되지 않은 메서드 'is_visible'for nil : NilClass" – RyanJM

관련 문제