質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.52%

  • HTML

    8944questions

    HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

  • selenium

    503questions

    Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Selenium IDEにおけるLocator設定方法について

受付中

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 610

AkinobuKatou

score 2

前提・実現したいこと

Selenium IDEでテストコードを整備しようとしています。
動的にIDが変わる箇所をクリックさせるスクリプトの整備で困っています。

発生している問題

テスト対象のWEBページは以下のようなコードになっています。
button id は描画のたびに動的に変更されます。
<td class="z-button-cm">●●●●</td> の ●●●● をクリックする というスクリプトを作りたいのですが、うまくいきません。
●●●● の文言は毎回固定です。

<div id="z_qs_p9" style="width:100%;height:100%;">
  <div id="z_qs_r11" class="sectionpaneltitle" align="start">
    <div id="z_qs_s11" class="perspectiveButton" onmouseout="dragHoverClick( $e('z_qs_s11'), event, true, null, 0);" onmouseover="dragHoverClick( $e('z_qs_s11'), event, false, 'PerspectiveDND', 500);">
      <span z.type="zul.btn.Button" id="z_qs_t11" class="z-button" z.zcls="z-button" z.disd="true">
        <table id="z_qs_t11!box" cellspacing="0" cellpadding="0" border="0" class="plainBtn z-button z-button-disd" style="font-weight:bold;">
          <tbody>
            <tr>
              <td class="z-button-tl">
                <button id="z_qs_t11!real" class="z-button" disabled="disabled"></button>
              </td>
              <td class="z-button-tm"></td>
              <td class="z-button-tr"></td>
            </tr>
            <tr>
              <td class="z-button-cl"></td>
              <td class="z-button-cm">Link1</td>
              <td class="z-button-cr">
                <div></div>
              </td>
            </tr>
            <tr>
              <td class="z-button-bl"></td>
              <td class="z-button-bm"></td>
              <td class="z-button-br"></td>
            </tr>
          </tbody>
        </table>
      </span>
      <span id="z_qs_u11" class="z-separator-ver-bar z-label" style="width:1px;" z.zcls="z-label">&nbsp;&nbsp;</span>
    </div>
    <div id="z_qs_v11" class="perspectiveButton" onmouseout="dragHoverClick( $e('z_qs_v11'), event, true, null, 0);" onmouseover="dragHoverClick( $e('z_qs_v11'), event, false, 'PerspectiveDND', 500);">
      <span z.type="zul.btn.Button" id="z_qs_021" class="z-button" z.zcls="z-button">
        <table id="z_qs_021!box" cellspacing="0" cellpadding="0" border="0" class="plainBtn z-button z-button-over z-button-clk">
          <tbody>
            <tr>
              <td class="z-button-tl">
                <button id="z_qs_021!real" class="z-button"></button>
              </td>
              <td class="z-button-tm"></td>
              <td class="z-button-tr"></td>
            </tr>
            <tr>
              <td class="z-button-cl"></td>
              <td class="z-button-cm">Link2</td>
              <td class="z-button-cr">
                <div></div>
              </td>
            </tr>
            <tr>
              <td class="z-button-bl"></td>
              <td class="z-button-bm"></td>
              <td class="z-button-br"></td>
            </tr>
          </tbody>
        </table>
      </span>
      <span id="z_qs_121" class="z-separator-ver-bar z-label" style="width:1px;" z.zcls="z-label">&nbsp;&nbsp;</span>
    </div>
    <div id="z_qs_221" class="perspectiveButton" onmouseout="dragHoverClick( $e('z_qs_221'), event, true, null, 0);" onmouseover="dragHoverClick( $e('z_qs_221'), event, false, 'PerspectiveDND', 500);">
      <span z.type="zul.btn.Button" id="z_qs_321" class="z-button" z.zcls="z-button">
        <table id="z_qs_321!box" cellspacing="0" cellpadding="0" border="0" class="plainBtn z-button">
          <tbody>
            <tr>
              <td class="z-button-tl">
                <button id="z_qs_321!real" class="z-button"></button>
              </td>
              <td class="z-button-tm"></td>
              <td class="z-button-tr"></td>
            </tr>
            <tr>
              <td class="z-button-cl"></td>
              <td class="z-button-cm">Link3</td>
              <td class="z-button-cr">
                <div></div>
              </td>
            </tr>
            <tr>
              <td class="z-button-bl"></td>
              <td class="z-button-bm"></td>
              <td class="z-button-br"></td>
            </tr>
          </tbody>
        </table>
      </span>
    </div>
  </div>
</div>

試したこと

LocatorとしてID、name、CSS、Xpathが利用できると思うのですが、いずれもいろいろ試しましたがうまくいきませんでした。

CSSでの指定で以下を試して見ましたが、画面上のほかの要素でtdタグの同じ名称のコードがあったため、そちらがクリックされてしまいました。

css=td:contains('●●●●')


こういったサイトも参考に見ました。
http://www.guru99.com/locators-in-selenium-ide.html
https://newcircle.com/bookshelf/selenium_tutorial/locators

補足情報(言語/FW/ツール等のバージョンなど)

テスト実行端末はWindows10
ブラウザはFirefox 51.0.1 64bit
Selenium IDE は2.9.1 です。

画面上、毎回同じ場所に表示されるので座標で指定できるならそれでも良いと思っています。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

0

回答にはならないかもしれませんが、質問したい点もあるのでコメントさせていただきますね。

CSSでの指定で以下を試して見ましたが、画面上のほかの要素でtdタグの同じ名称のコードがあったため、そちらがクリックされてしまいました。

というのは、

<td class="z-button-cm">●●●●</td>

というtdが他にもあるということでしょうか。
また、こちらのtdの要素は動的に読み込まれたりするのでしょうか。
親要素も含めたCSSやXpathで指定してあげるとなんとかならないかな...と思うのですが、もしよろしければもうちょっと例のHTMLを上げていただければと思います。

あと、ブラウザによってもlocatorはちょっと変わってくるみたいなので、Firefoxだと、こちらは通ったりしますでしょうか。

td[textContent='●●●●']

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/28 13:55 編集

    ありがとうございます。
    tdの要素は動的には変更されませんが、div idが動的に変更になります。
    td[textContent='●●●●'] は試してみましたが、通りませんでした。

    HTMLを質問本文に追加で示します。ソースの「link2」というところをクリックさせたいです。
    すいません、お教えいただけると大変助かります。
    以上、よろしくお願いします。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.52%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • HTML

    8944questions

    HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

  • selenium

    503questions

    Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。