我有Watir的问题。 在UI中,有许多表如下:
<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>
相同要求:搜索UI中是否存在“ABCD”(如果存在),然后在下拉列表中选择“2”之类的值 以这种方式尝试,基于你向我展示的方式,效果不佳
if b.td(:text, "ABCD").present?
b.td(:text, "ABCD").parent.select_list.select('2')
end
答案 0 :(得分:0)
如果你想根据“ABCD”出现一些事情,那么你需要使用if
语句(而不仅仅是检查它是否存在)。同样,您可能希望检查元素是present?
而不只是exist?
。 exist?
仅检查元素是否在DOM中,并且不检查该元素是否实际显示给用户(有关详细信息,您可以看到this blog post)。
if b.td(:text => "ABCD").present?
# Do something when the element is displayed
end
之前的td元素称为兄弟元素,有一个couple of options。我们可以按照您的尝试使用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