2011-01-25 9 views
3

JavaとSpringを使用してSeleniumテストを書く際に問題があります。SeleniumがJavaScriptのリンクをクリックします。

複数の削除ボタン(ファイルのリスト)を含むページの削除ボタンをクリックするには、Seleniumが必要です。 Selenium IDEを使用すると、次のコードが生成されます。

selenium.click( "link = Delete");

これは基本的に役に立たない。私はどのようにテーブルに含まれている特定の要素をターゲットにするかを理解することができませんでした。ここではソースです:

<tr onmouseover="mouseOver(this)" onmouseout="mouseOut(this)"> 
    <td class="thumbnail" align="center"><img src="/services/images/nav/resources.gif" /></td> 
    <td colspan="3" onClick="nav('FileName'); return false"> 
    <a href="javascript:nav('FileName')">Basics</a></td> 
<td> 
    <a class="actionButton" href="javascript:del('FileName')">Delete</a></td> 
<td>&nbsp;</td> 
</tr> 

は、私はどちらか a))は正しい削除アクションまたは BのXPathを返すJavaコードからJavaScriptコマンド自体を送信する方法を見つける必要があります。私はいずれかに方法を把握することができませんでした、誰かが正しい方向に私を指すことができますか?

+0

みんなありがとうの区別を提供確かならば!私はこのxpathで終わりました: selenium.click( "tr(td [a(@href、 '" + fileName + "])]]]/td/a [contains(text()、' Delete ')]」);それは魅力的に機能しました! – krazycat

+0

以下の回答が役立つ場合は、そのうちの最も有用なものを回答としてマークすることを検討してください。少なくとも、あなたを助けたすべての答えにアップフォートを与えることを検討してください。 – vamyip

答えて

3

"ファイル名"部分は一意ですか?

そうであれば、適切なXPathは次のようになります。また

selenium.click("//a[@href=\"javascript:del('FileName')\"") 

、あなたはセレンIDEからの最初の削除]リンクをクリックしたのですか?もしそうなら、代わりに次のものをクリックして、それがどうなっているのかを見てください。それはあなたが後にしているあなたのボタンのXPathを見つけるためのツールだ場合

0

XPath Checkerと呼ばれるこのFirefox拡張機能があります。 Firefoxのhtmlソースを開き、必要なもののXPathを取得することができます。しかし、私はセレンで正しく動作しなかったいくつかのXPath式に問題があることを覚えています。

0

は、その後、さまざまなオプションがあります:

  • 使用FireBug(Firefoxのアドオン):あなたは、HTMLの要素を右クリックした場合タブをクリックすると、Xpath式をクリップボードにコピーできます。
  • 使用Xpath(Firefoxのアドオン):あなたが生成し、編集および検査XPath式を可能にするアドオン
0

私は2つの理由のためにセレン識別子のためのCSSを使用した方の部分だ -

  1. 可読性
  2. 前記され、限定は番目であることを
  3. ブラウザ独立(XPathの認識はIEに遅い)

同じ名前を持つ複数の要素で、識別可能な属性を持つ必要があります。あなたのソースで

は、CSSの識別子とSeleniumのコマンドは次のようになります。

selenium.click("css=a.actionButton[href=javascript:del('FileName')]"); 

href属性は、他の削除]ボタン

関連する問題