我需要找到表,然后找到tr和td,但是找到表 没有id和名称,那么如何找到表?我知道 应该使用索引,遗憾的是它不起作用。 我想要的页面中有10个表 在表格的行中找到“refesh”,可能很容易,但我 无法解决它...我不知道如何找到特定的表...,没有 id,没有名字,我怎样才能判断哪个表是我想要的。
代码的一部分:
<table cellspacing="0" border="0" style="height:63px; width:">
<tbody>
<tr>
<td style=" ">
<table cellspacing="0" border="0" style="margin-top:14px; width:112px; padding-left:15px;">
<tbody>
<tr>
<td style="" rowspan="2"></td>
<td id="tdrefresh" style="height:28px;" colspan="2">
<div align="center" onclick="refresh(this,13652,1,1,0,0)" style="margin-bottom:15px;">
<div align="center" style="color:#414141;">refresh</div>
</div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
答案 0 :(得分:0)
您是否尝试过browser.cell(:id =&gt;“tdrefresh”)来定位单元格?
答案 1 :(得分:0)
如果你的真正目标是找到'刷新'单元格,那么Alastair听起来像是一个合理的答案。但请注意,事件“布线”位于单元格中div的级别,因此如果您的目标是单击“刷新”,那么您实际上需要单击的div
browser.cell(:id, "tdrefresh").div(:index, 1).click # note index would be 0 for firewatir
请注意,如果您在测试能力方面向开发人员提供了输入,则可能会建议他们将ID放在实际导致操作发生的元素级别。例如,上面有ID的单元格什么也不做,只是一个被动容器,因为'onclick'事件处于该单元格内div的级别。因此,在该div上使用ID而不是包含它的单元格会更有价值。如果是这种情况,那么您的代码变得更加简单(并且更兼容跨浏览器)。
browser.div(id, 'tdrefresh').click
否则你将需要两件事之一。
1)一些独特的东西,它可能是表格中的另一个元素或文本。 ID,因为它应该在页面中是唯一的(不包括帧中的内容)是一个很好的选择,如果它存在,否则可能需要其他属性的组合一些潜在的例子可能是
browser.cell(:id, "tdrefresh").parent.parent.parent #parents are row, tbody, table respectively
browser.cell(:text, "refresh").parent.parent.parent #will need to combine with index of text occurs in more than one cell)
或
browser.table(:text, /refresh/) # not likely to work well with nested tables
2)一些外部容器,如div或span,它封装了表,您可以通过唯一属性或属性组合来识别。 (由于您在示例中没有提供表格标记以外的任何内容,因此无法提出任何建议。
答案 2 :(得分:0)
Alastair和Chuck van der Linden 谢谢你的回答,真有帮助。我试过这段代码:ie.div(:text =&gt;“refresf”,:index =&gt; 2).click, 现在好了。我仍然用你的答案来验证这个问题。非常感谢你,你给我更多的想法来解决这个问题。