簡體   English   中英

如何選擇上一個元素 <TD> 在瓦蒂爾?

[英]How to select element in previous <TD> in watir?

我對Watir有問題。 在用戶界面中,有很多如下表:

<tr>
    <td>
        <select>
            <option value="0">0</option>
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
        </select>
    </td>
    <td>
        ABCD
    </td>
</tr>

我需要搜索UI中是否存在“ ABCD”(如果存在),然后在下拉列表中選擇一個類似於“ 2”的值嘗試過這種方式,但效果不佳

puts b.td(:text => "ABCD").exist?
puts b.td(:ABCD").parent.row(:index, 0)

還有另一個如下表:

<tr>
    <td>
        <select>
            <option value="1">1</option>
            <option value="2">2</option>
        </select>
    </td>
    <td>
        <select>
            <option value="ABCD">ABCD</option>
            <option value="EFGH">EFGH</option>
            <option value="IJKL">IJKL</option>
        </select>
    </td>
</tr>

相同的要求:在用戶界面中搜索“ ABCD”是否存在,如果存在,則在下拉列表中選擇一個類似於“ 2”的值,根據您的顯示方式進行了這種嘗試,效果不佳

if b.td(:text, "ABCD").present?
    b.td(:text, "ABCD").parent.select_list.select('2')
end

如果要基於出現的“ ABCD”執行某些操作,則需要使用if語句(而不僅僅是檢查它是否存在)。 同樣,您可能想檢查該元素是否present? 不僅exist? exist? 僅檢查該元素是否在DOM中,而不檢查該元素是否實際顯示給用戶(有關更多詳細信息,請參見此博客文章 )。

if b.td(:text => "ABCD").present?
  # Do something when the element is displayed
end

前面的td元素稱為同級,有兩個選擇 我們可以像您嘗試的那樣使用parent方法。 但是,請注意, parent方法已經返回了row元素(因為它是td的父元素)。 查找選擇列表:

b.td(:text => "ABCD").parent.select_list

放在一起:

if b.td(:text => "ABCD").present?
    b.td(:text => "ABCD").parent.select_list.select('2')
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM