我使用Watir和Phantomjs来管理自助门户网站上的客户设置。
我正在处理一个包含单个列和多个行的表,其中显示了可以订阅的可用包列表。在每一行我都可以找到说明和一个按钮。每个按钮都有自己的ID由页面生成,但所有按钮都有相同的描述。 粘贴格式化的HTML我发现
+-----------------------------------+
| Available Packages |
+-----------------------------------+
| Package_1 [subscribe] |
| Package_2 [subscribe] |
| Package_3 [subscribe] |
| Package_4 [subscribe] |
| Package_5 [subscribe] |
我试图点击包含文字但未成功的特定行的按钮。我甚至无法选择那行......我怎么能这样做?
browser.td(:text => /^Package_2/)
返回
=> #<Watir::TableDataCell:0x..fc0259e6592e39a6 located=false selector={:text=>/^Package_2/, :tag_name=>"td"}>
HTML表格在加载页面上生成。两个包的示例是:
<table id="j_id174" class="scrollTable4" width="820px">
<thead class="fixedHeader4 headerFormat4">
<tr>
<td style="background:none"></td>
<td width="100%"></td>
</tr>
</thead>
<tbody class="scrollContent4 bodyFormat4">
<tr id="showdivj_id1740" style="background-color:#e0e0e0;">
<td style="background-color:#ffffff;background-image:none;"><a href="javascript:DivStatus( 'mondiv','j_id174',0)" style="text-decoration:none;"><img id="imgj_id1740" border="0" src="../imgs/puce_plus.png" width="13" height="13"></a></td>
<td>
<div style="position:relative;"><span class="xdt">PACKAGE_1</span><button type="button" onclick="return _chain('blockpage()','submitForm(\\'j_id13\\',0,{source:\\'j_id174:0:j_id180\\'});return false;',this,event,true)" class="xe4 x7i">subscribe</button></div>
</td>
</tr>
<tr id="showdivj_id1741" style="background-color:#e0e0e0;">
<td style="background-color:#ffffff;background-image:none;"><a href="javascript:DivStatus( 'mondiv','j_id174',1)" style="text-decoration:none;"><img id="imgj_id1741" border="0" src="../imgs/puce_plus.png" width="13" height="13"></a></td>
<td>
<div style="position:relative;"><span class="xdt">PACKAGE_2</span><button type="button" onclick="return _chain('blockpage()','submitForm(\\'j_id13\\',0,{source:\\'j_id174:1:j_id180\\'});return false;',this,event,true)" class="xe4 x7i">subscribe</button></div>
</td>
</tr>
</tbody>
</table>
非常感谢你!
答案 0 :(得分:0)
要单击的按钮与匹配的文本位于同一单元格中。您已经检索了具有匹配文本的td
元素,因此您只需单击其中的一个按钮:
browser.td(:text => /^Package_2/).button.click