[英]Watir Webdriver : Iterating table and storing its content in an array
我正在嘗試自動使網站上顯示的一個區塊並通過CMS表比較其內容。 問題是我設法使出現在UI上的塊自動化,但是當我以admin身份登錄並嘗試使用迭代方法將表的內容保存在數組中時,我無法做到這一點。
<table id="nodequeue-dragdrop" class="nodequeue-dragdrop sticky-enabled tabledrag-processed sticky-table">
<thead class="tableHeader-processed">
<tbody>
<tr class="draggable odd">
<td>
<a class="tabledrag-handle" href="#" title="Drag to re-order">
<a href="/car-news/moscow/new-text-1">New Text 1</a>
</td>
<td>
<td>2012-06-06 10:24</td>
<td style="display: none;">
<td>
<td>
<td class="position">1</td>
</tr>
<tr class="draggable even">
<td>
<a class="tabledrag-handle" href="#" title="Drag to re-order">
<a href="/car-news/new-cars/text-2">Text 2 </a>
</td>
<td>
<td>2012-06-06 10:29</td>
<td style="display: none;">
<td>
<td>
<td class="position">2</td>
</tr>
<tr class="draggable odd">
<td>
<a class="tabledrag-handle" href="#" title="Drag to re-order">
<a href="/car-news/new-cars/this-is-text-3">This is Text 3</a>
</td>
<td>
<td>2012-06-05 12:55</td>
<td style="display: none;">
<td>
<td>
<td class="position">3</td>
</tr>
我正在使用的代碼是
@text = Array.new
x = 1
y = 0
until x == 10
y = x -1
until y == x
@text[y] = @browser.table(:id,'nodequeue-dragdrop').tbody.row{x}.cell{1}.link(:href =>/car-news/).text
puts @text[y]
y=y+1
end
x=x+1
end
問題是腳本成功運行,但是即使我設置了迭代,腳本也只能讀取第一個元素並顯示文本,而不能轉到第二個第三個...等等。
賈斯汀(Justin)使用ruby的內置方法遍歷集合,朝着正確的方向前進。 但是請考慮一下,如果我正確地閱讀了您的代碼,您知道您在特定鏈接的文本之后,那么為什么只可以收集一組匹配的鏈接來遍歷行呢?
link_text_array = Array.new
@browser.table(:id,'nodequeue-dragdrop').links(:href => /car-news/) do |link|
link_text_array << link.text
end
有內置的方法可以遍歷行/列。 嘗試這個:
table_array = Array.new
table = @browser.table(:id,'nodequeue-dragdrop')
table.rows.each do |row|
row_array = Array.new
row.cells.each do |cell|
row_array << cell.text
end
table_array << row_array
end
puts table_array # This will be an array (row) of arrays (column)
找到了解決我問題的方法
代替行{},我使用了tds {},即我將代碼更改為
@text[y] = @browser.table(:id,'nodequeue-dragdrop').tbody.tds{x}.cell{1}.link(:href =>/car-news/).text
它的工作如我所願。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.