2011-08-30 3 views
1

데이터가 데이터베이스에서 채워지는 여러 열을 포함하는 테이블이 있습니다. 열은 드롭 다운, 텍스트 필드, 간단한 텍스트와 함께 확인란을 가질 수 있습니다. 필자는 본질적으로 테이블 열에있는 데이터를 반환하는 함수를 작성해야합니다.watir에서 태그의 직접적인 자식 찾기

다음은 웹 페이지에서 태그 이름을 지정하는 방법에 대한 예입니다. [테이블 용 CSS의 w3school에 대한 크레딧]. 지금

<html> 
<head> 
<style type="text/css"> 
#customers 
{ 
font-family:"Trebuchet MS", Arial, Helvetica, sans-serif; 
width:100%; 
border-collapse:collapse; 
} 
#customers td, #customers th 
{ 
font-size:1em; 
border:1px solid #98bf21; 
padding:3px 7px 2px 7px; 
} 
#customers th 
{ 
font-size:1.1em; 
text-align:left; 
padding-top:5px; 
padding-bottom:4px; 
background-color:#A7C942; 
color:#ffffff; 
} 
#customers tr.alt td 
{ 
color:#000000; 
background-color:#EAF2D3; 
} 
</style> 
</head> 

<body> 
<table id="customers"> 
<tr> 
    <th>Company</th> 
    <th>Contact</th> 
    <th>Country</th> 
</tr> 
<tr class="data-row"> 
<td id="customers:0:company">Alfreds Futterkiste</td> 
<td id="customers:0:contact">Maria Anders</td> 
<td id="customers:0:chooseCountry"> 
<select id="customers:0:country"> 
<option>Germany</option> 
<option>Sweden</option> 
<option>Mexico</option> 
</select> 
</td> 
</tr> 
<tr class="data-row alt"> 
<td id="customers:1:company">Berglunds snabbköp</td> 
<td id="customers:1:contact">Christina Berglund</td> 
<td id="customers:1:chooseCountry"> 
<select id="customers:1:country"> 
<option>Germany</option> 
<option selected="selected">Sweden</option> 
<option>Mexico</option> 
</select> 
</td> 
</tr> 
<tr class="data-row"> 
<td id="customers:2:company">Centro comercial Moctezuma</td> 
<td id="customers:2:contact">Francisco Chang</td> 
<td id="customers:2:chooseCountry"> 
<select id="customers:2:country"> 
<option>Germany</option> 
<option>Sweden</option> 
<option selected="selected">Mexico</option> 
</select> 
</td> 
</tr> 
</table> 
</body> 
</html> 

, I는 "회사"이라고 말 컬럼의 모든 값을 결정하기 위해 사용되는 알고리즘은

  1. 는 "데이터 열"로 등급을 갖는 행 = 또는 문자열의 어떠한 결정하지 .
  2. 셀을 얻고 나는 select_list에이를 사용하는 경우,

이제 텍스트를 검색 할 텍스트 방법을 사용하여 N-1

  • 0에서 그것을 반복의 캐릭터를 구축, 그것은 반환 모든 옵션을 선택하십시오. 따라서 태그의 자식이 텍스트 필드 또는 드롭 다운 목록인지 확인하고 각각의 함수를 호출하여 값을 가져옵니다.

    Watir에서 특정 태그의 하위 태그가 특정 태그인지 또는 JavaScript의 getAllChildNodes와 유사한 방법이 있는지 확인할 수 있습니까?

    설명이 부족하여 가능한 해결책을 미리 알려 주셔서 감사드립니다.

  • 답변

    4

    이 매우 간단합니다, 당신은 단지 text_field 또는 select_list의 존재 여부를 확인해야합니다

    require 'watir-webdriver' 
    
    b = Watir::Browser.start 'yourwebpage' 
    
    b.table.rows.each do |row| 
        row.cells.each do |cell| 
        if cell.text_field.exist? 
         puts cell.text_field.value 
        elsif cell.select_list.exist? 
         puts cell.select_list.selected_options 
        else 
         puts cell.text 
        end 
        end 
    end 
    
    b.close 
    
    관련 문제