2011-07-01 10 views
2

テーブルを見つけて、trとtdを見つける必要がありますが、テーブル にはIDと名前がありません。 ?私は は、残念ながらそれは動作しませんインデックスを使用する必要があります知っている。 ページに10個のテーブルがありますが、 はテーブルの行に「refesh」と表示したいので、簡単かもしれませんが、 は解決できません...特定のテーブルを見つける方法がわかりません。 ..、いいえ id、no name、どのテーブルを探したいかをどのように判断できますか?セルの位置を特定するために:(ID => "tdrefresh")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を試してみました:コードの一部は、

ありますか?

0

あなたの真の目的が「リフレッシュ」セルを見つけることであるなら、Alastairは妥当な答えのようなものを持っています。イベント「配線」は、細胞内のdivのレベルであることに注意してくださいので、あなたの目的はをクリックしたのであれば、それは本当にあなたが

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

注をクリックする必要がdiv要素の「リフレッシュ」であれば、そのあなたはテスト能力に関して開発者に入力しましたが、実際にアクションを起こしている要素のレベルにIDを配置するように提案することができます。たとえば、IDを持つセルは何も実行せず、単にonclickイベントがそのセル内のdivのレベルにあるため、パッシブコンテナに過ぎません。だから、divを含むセルではなく、そのdivにIDを持たせるほうがずっと価値があります。そうだった場合、コードはずっとシンプルになり(クロスブラウザーとの互換性も向上します)

browser.div(id, 'tdrefresh').click 

それ以外の場合は、2つのうちのいずれかが必要になります。

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とChuck van der Linden あなたの答えをありがとう、本当に役に立ちました。私はこのコードを試した:ie.div(:text => "refresf"、:index => 2).click、 これで問題は解決しました。この問題を解決するためのアイデアを多くお寄せいただきありがとうございます。

+0

チェックマークのアイコンを「受け入れる」と答えると、必要な情報が得られます。それは答えを提供する人々の努力を「認識する」方法です。 –

関連する問題