2012-11-05 3 views
1

이전 회사에서 webdriver 및 geb를 사용하여 Watir에 익숙하지 않습니다. Watir이 webdriver의 get_elements 메소드와 유사한 메소드를 제공하는지 알고 싶습니다. 아래 예제를 참조하십시오.배열로 일치하는 요소를 반환하십시오.

는 다음과 같은 HTML이

<div class="someClass">someText</div> 
<div class="someClass">someMoreText</div> 
<div class="someClass">evenMoreText</div> 

내가 지정된 클래스의 모든 요소를 ​​찾기 및 그들을 통해 반복하여 div의 각각에 대한 일부 주장을하고자하는 더 큰 페이지 내에 존재 상상해보십시오. webdriver를 사용하면 다음과 같이 할 수 있습니다.

elements = driver.get_elements(:css, ".someClass") 
elements.each do |element| 
    //some assert on element 
end 

Watir는 동일한 구조를 제공합니까? Watir 설명서에서 유용한 것을 찾을 수 없습니다.

elements = driver.elements(:css => '.someClass') 

을 아니면 그들이 모든 div를 알고 있다면, 당신은 수행해야합니다 :

답변

2

당신은 할 수

elements = driver.divs(:css => '.someClass') 

두 방법 모두를 조건에 맞는 요소의 컬렉션을 반환합니다. 첫 번째 경우에는 모든 태그 유형과 일치합니다. 두 번째 경우 결과는 div로 제한됩니다. 그것은 일반적으로 더 빨리이며 당신을 수 있기 때문에,

elements.each do |element| 
    //some assert on element 
end 
+0

감사합니다. 정확히 내가 무엇을 찾고 있었는지. – CBA

+0

저스틴, 거기에 오타가있는 것처럼 보입니다. 그것은 .someClass 여야합니다 - 점이 없습니다. –

+0

감사합니다. @JarmoPertman. 나는 오타가 실제로 그것이라고 생각한다. : CSS는 있어야한다 : class. –

2

대신 :css 로케이터를 사용하여 내가 대신 :class 로케이터를 사용하는 것이 좋습니다 것 :

그런 다음, 위의 중 하나를 사용하여, 당신은 같은 방법으로 반복 할 수 더 읽기 테스트 :

또한
elements = driver.divs(:class => 'someClass') 

:id, :name, :text 및 다른 사람을 잊지 마세요.

관련 문제