2012-04-03 23 views
1

Selenium IDEを使用して、テーブル行内にリンクを配置しようとしています。表の行は動的に生成されます。各行には、テキストコンテンツを持つセルと、おそらく2つ以上のリンクを持つセルがあります。セルの内容に基づいてテーブル行のリンクを選択

私がしたいのは、特定のテキストが参照する特定の行内の特定のリンクをクリックする自動テストを作成することです。例えば、下の表に:

<html> 
<body> 
<table border="1"> 
<tr> 
    <td> 
    Hello World! 
    </td> 
    <td> 
    Type Greeting 
    </td> 
    <td> 
    <a href="www.foo.com/view/id=123456">View</a> 
    <a href="www.foo.com/delete/id=123456">Delete</a> 
    </td> 
</tr> 
<tr> 
    <td> 
    Buenos Dias! 
    </td> 
    <td> 
    Type Greeting 
    </td> 
    <td> 
    <a href="www.foo.com/view/id=789101">View</a> 
    <a href="www.foo.com/delete/id=789101">Delete</a> 
    </td> 
</tr> 
</table> 
</body> 
</html> 

シナリオは、私が「!ブエノスディアス」のデータを追加する前のページに、です。次のページには、追加されたすべてのデータの表が表示されます。私はちょうど追加されたデータ(この場合、 "Buenos Dias!"エントリー)の "View"リンクをクリックすることができます。

"ビュー"のリンクを見つけるには、 "Buenos Dias!"というテキストを参考にしてください。

私は、テキストを含むセル見つけることができる午前:

//td[text()="Buenos Dias!"] 

をしかし、私はテーブルから、それぞれの「表示」リンクを見つけるための基準として何らかの形でそれを使用したいと思います。私は兄弟のフォーマットを試してみました(先行する)。私はそれを正しく動作させるように思える。データが変更され、エントリが別の行に表示されるため、絶対xpath(html/body/table/tbody/tr [1]/td [3]/a [1])を使用すると機能しません。

ご協力いただきありがとうございます。詳細情報が必要な場合はお知らせください。

  • セレンIDE 1.7.2
  • のFirefox 9.0.1
  • のMac OS Xのライオン10.7.3

答えて

3

使用

(//td[normalize-space() ="Buenos Dias!"])[1]/following-sibling::td[2]/a[. = 'View'] 
+0

ありがとうDimitre!これは私のために働いた。 – RaymundS

+0

@レイムンド:あなたは歓迎です –

0
//find table first 
WebElement q= d.findElement(By.xpath("//*[@id='applicationcontent']/div[6]/table/tbody/tr")); 

// find a unique value of the row and click on link of the row which is after the text you find. 
     q.findElement(By.xpath("//td[contains(text(),'[email protected]')]/following-sibling::td/a[@id='edit.png']")).click(); 
0

(//td [normalize-space()= "Buenos Dias!"])[1]/following-sibling :: td [ 2]/a [。 = '表示']

関連する問題