Watir:如何访问没有ID或NAME的表

时间:2010-08-08 14:30:57

标签: watir firewatir

我正在尝试编写我的watir脚本来获取以下数据(表体标题和表行数据,但我无法弄清楚如何访问该表。(一旦我得到它,休息一下)是一块蛋糕。)

任何人都可以提出一些可以帮助我访问桌子的东西吗?它没有名称或ID ......

<div id="income">
    <table class="tHe" cellspacing="0">
    <thead>
        <tr>
            <th id="companyLabel" class="tFirst" style="width:30%"> Quarter Ending  </th>
            <th id="201004" class="tFirst right">Apr&nbsp;10 </th>
            <th id="201001" class="tFirst right">Jan&nbsp;10 </th>
            <th id="200910" class="tFirst right">Oct&nbsp;09 </th>
            <th id="200907" class="tFirst right">Jul&nbsp;09 </th>
            <th id="200904" class="tFirst right">Apr&nbsp;09 </th>
        </tr>
    </thead>

    <tbody id="revenueBody">
    <tr>
        <td  class="indtr">Totals</dfn></td>
        <td class="right">2849.00</td>
        <td class="right">3177.00</td>
        <td class="right">5950.00</td>
        <td class="right">4451.00</td>
        <td class="right">3351.00</td>
    </tr>
    ...

3 个答案:

答案 0 :(得分:6)

如果没有其他具有相同类名的表,

ie.table(:class =&gt;'tHe')应该有效

ie.table(:after?,ie.div(:id,'income'))应该有效,如果没有其他div为id'收入'

或ie.table(:index =&gt; 0) - 您需要检查您的页面以查看表格的正确索引值。

答案 1 :(得分:5)

但等等,还有更多! :)

browser.div(:id => "income").table(:class => 'tHe')
browser.div(:id => "income").table(:index => 1)
...

答案 2 :(得分:3)

如果你被困住,还有XPath。

如果您启动页面并通过Firebug或浏览器的本机开发人员工具访问它,您可以找到该表的xpath表达式,然后将其插入Watir API调用。

我认为在Watir 1.5.x的更高版本中支持高级页面查询(基本上是你的问题,没有ID标签)。 watir wiki上的这个页面应该有所帮助: Ways Available To Identify HTML Element