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

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

新規登録して質問してみよう
ただいま回答率
85.49%
selenium

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

HTML

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

Q&A

1回答

2198閲覧

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

AkinobuKatou

総合スコア10

selenium

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

HTML

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

0グッド

0クリップ

投稿2017/02/25 16:47

編集2017/02/28 04:57

###前提・実現したいこと
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 です。

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

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

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

というのは、

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

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

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

td[textContent='●●●●']

投稿2017/02/27 15:20

suama

総合スコア1997

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

AkinobuKatou

2017/02/28 04:58 編集

ありがとうございます。 tdの要素は動的には変更されませんが、div idが動的に変更になります。 td[textContent='●●●●'] は試してみましたが、通りませんでした。 HTMLを質問本文に追加で示します。ソースの「link2」というところをクリックさせたいです。 すいません、お教えいただけると大変助かります。 以上、よろしくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問