2011-07-01 41 views
2

我需要找到表,然後找到tr和td,但表 沒有id和名稱,所以如何找到表?我知道 應該使用索引,不幸的是它不工作。 在頁面中有10個表格,我想要 在表格的行中找到「refesh」,可能很容易,但我 無法解決它...我不知道如何找到特定的表格。 ..,沒有 id,沒有名字,我怎麼判斷哪個表是我想要找到的。如何找到沒有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

你試過browser.cell(:ID => 「tdrefresh」)來查找細胞?

0

如果你真正的目標是找到'更新'細胞,那麼Alastair聽起來像是一個合理的答案。但請注意,事件「連線」在小區內的div的水平,因此,如果你的目標是點擊「刷新」這是真的,你需要點擊

browser.cell(:id, "tdrefresh").div(:index, 1).click # note index would be 0 for firewatir 

注意的股利,如果您在測試能力方面向開發人員提出了意見,您可能會建議他們將ID放置在實際導致行爲發生的元素級別。例如,上面具有ID的單元格不做任何事情,並且僅僅是一個被動容器,因爲'onclick'事件處於該單元格內div的級別。因此,在該div上擁有該ID會更有價值,而不是包含該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,封裝了表格,可以通過一個獨特的屬性或屬性組合來識別。 (不能建議任何東西,因爲你在你的例子中沒有提供任何超過表標籤。

0

Alastair and Chuck van der Linden 謝謝你的回答,真的有幫助。我試過這段代碼:ie.div(:text =>「refresf」,:index => 2)。點擊, 現在沒問題。我仍然用你的答案來驗證這個問題。非常感謝你,你給我更多的想法來解決這個問題。

+0

請點擊複選標記圖標以「接受」,無論哪個答案都爲您提供了所需的信息,這就是您如何「識別」提供答案的人的努力。 –

相關問題