seleniumIDEでの別ブラウザ検証

1,601 views
Skip to first unread message

aoiaoi

unread,
Apr 17, 2015, 1:46:42 AM4/17/15
to selen...@googlegroups.com
今、seleniumで社内システムのオートブラウザを検証しているのですが、
firefoxで記録したテストケースをIE、chromeで再生したときにframe処理でエラーになります。

selectFrameコマンドはOKなのですが、
そこで指定したframe内になる文字をクリックするというところで
notfoundというエラーになります。

利用環境は
windows7
IE11
chrome41
firefox37
です。

waitforelementpresentやpause等試してみましたがうまくいきません。

その他何か可能性はありますでしょうか。

なにとぞよろしくお願い致します。

保木本将之

unread,
Apr 17, 2015, 3:57:18 AM4/17/15
to selen...@googlegroups.com
こんにちは、@oh_rusty_nailです。

まず、作られたテストを公開しても問題ないものであれば貼ってみてはどうでしょうか?
環境側の問題なのか実行しているテストが問題なのかの切り分けになるのかなとおもいました。

らんさぶ

unread,
Apr 17, 2015, 10:26:35 AM4/17/15
to selen...@googlegroups.com
らんさぶです。

seleniumIDE を 使用されているとのことですが 文脈からすると
webDriver経由(selenium-server-standalone.jarを起動した状態でIDEからテストスクリプトを実行)と思われます。

webDriverを使って frameを行き来して操作する場合 
直接 switchはできず一旦 親に戻る必要があります。
wdのコマンドだと driver.switchTo().defaultContent(); になります。

IDEの自動記録ではこれをどう処理されているかがわからないのですが、ご一報まで。

v...@nifty.com

unread,
Apr 18, 2015, 9:25:23 PM4/18/15
to selen...@googlegroups.com
岩室です。

FirefoxプラグインのSeleniumIDEの中で実行する場合は、子のframe/iframeへのアクセスは可能なのですが、
WebDriverだと、厳密に現在のframe/iframeしかアクセス対象にならないと認識しています。

実際、拙作のSelenese Runner Javaでは、フレームのあるページでのelementの取得に大変苦労しています。

Selenese Runner Java: SeleniumIDEのスクリプトを各種ブラウザで実行するツール

その苦労の跡:-)

SeleniumIDEで作成したスクリプトをそのまま各種ブラウザで実行したい場合は、上記Selenese Runner Javaを使うという選択肢もあります。
Firefox、Chrome、IE、PhantomJSなどに対応しています。
(SafariはSelenium 2.44あたりで動かなくなっていて(Safariのバージョンアップのせいかも)、
未だに解消されていないようです……。誰もレポートしてないっぽい)

2015年4月17日金曜日 23時26分35秒 UTC+9 らんさぶ:

aoiaoi

unread,
Apr 21, 2015, 10:09:37 PM4/21/15
to selen...@googlegroups.com
ご連絡遅くなり大変申し訳ありません。

はじめまして。
よろしくお願い致します。

ご回答ありがとうございます。

社内システムのため、公開は難しいです。。。
ですが、おそらく下記が該当しているのではないかと感じています。
(webDriverを使って frameを行き来して操作する場合直接 switchはできず一旦 親に戻る必要があります。)
(FirefoxプラグインのSeleniumIDEの中で実行する場合は、子のframe/iframeへのアクセスは可能なのですが、
WebDriverだと、厳密に現在のframe/iframeしかアクセス対象にならないと認識しています。)
まだ模索中なのですが・・。

何卒よろしくお願い致します。

2015年4月17日金曜日 16時57分18秒 UTC+9 保木本将之:

aoiaoi

unread,
Apr 21, 2015, 10:30:00 PM4/21/15
to selen...@googlegroups.com

ご連絡遅くなり大変申し訳ありません。

ご回答ありがとうございます。
よろしくお願い致します。

下記のとおりです、webdriver経由で実行しています。
親に戻るというのがIDEでは
selectFrame target relative=up
かな、と思い試してみたところ、
selectframeコマンドはエラーにはならないのですが、指定したframe内の文字列を選択で
notfoundというエラーになりました。
(click taeget-//div[2]/table/tbody/tr/td[2]/a)⇒targetをidに変更しても同じです。

引き続き色々模索してみます。有難うございます。

2015年4月17日金曜日 23時26分35秒 UTC+9 らんさぶ:

aoiaoi

unread,
Apr 21, 2015, 10:43:53 PM4/21/15
to selen...@googlegroups.com
はじめまして。
宜しくお願い致します。

返信遅くなり申し訳ありません。

>WebDriverだと、厳密に現在のframe/
iframeしかアクセス対象にならないと認識しています。

⇒こちらについてですが、webdriver経由でIDEから実行した場合ということでしょうか?

ありがとうございます!!
さっそくSelenese Runner Javaから実行してみたところ、frameの移行が問題なく実行できました。
(次コマンドである文字列を選択が成功しました。)

ただ、Selenese Runner Javaで実行した場合、以降の下記処理でNGになってしまいました。。。

mouseOver
clickAt

処理のフローでいうと、プルダウンのボタン画像を選択すると一見プルダウンのように選択項目が出てくるのですが、
内部ではプルダウンでは作成していないのかselectコマンドではうまくいかず、上記2つのコマンドを組み合わせて
選択できました。

mouseOver target-要素のid指定
clickAt target-要素のid指定

度々申し訳ありませんが、なにか原因ご存じであればご教示頂きたくお願い致します。。




2015年4月19日日曜日 10時25分23秒 UTC+9 v...@nifty.com:

らんさぶ

unread,
Apr 22, 2015, 8:41:45 AM4/22/15
to selen...@googlegroups.com
らんさぶです。
Selenese Runner Javaに移られたんですね。


ちなみにですが手元の環境(IDE2.9.0 + IE11)で動作を確認しました。

<tr>
<td>selectFrame</td>
<td>relative=top</td>
<td><td>
</tr>

ちょっと手遅れでしたが・・・

aoiaoi

unread,
Apr 23, 2015, 1:46:23 AM4/23/15
to selen...@googlegroups.com
ありがとうございます!!
できれば、その後の処理も考え、IDEから実行したいと考えています。

私の方でも下記を試してみました。
frameの行き来はできているのかSelectframeコマンドはエラーになりません。

ただ、やはり、その後の指定したframe内の文字列を選択でnotfoundというエラーになったのですが、いかがでしょうか?
frame移行後の処理も問題なく可能でしょうか???
(click taeget-//div[2]/table/tbody/tr/td[2]/a)⇒targetをidに変更しても同じです。

初歩的な質問ばかりで大変申し訳ありませんが何卒よろしくお願い致します。

2015年4月22日水曜日 21時41分45秒 UTC+9 らんさぶ:

らんさぶ

unread,
Apr 23, 2015, 9:27:30 AM4/23/15
to selen...@googlegroups.com
らんさぶです。

私が試したのは フレームで2ペインに分かれている画面で下記のようにしました。
例)左側が name=menu 右側が name=content 


<tr>
 <td>selectFrame</td>
 <td>name=menu</td>     ← 左側にフォーカス(?)を移す
 <td><td>
</tr>
<tr>
 <td>click</td>
 <td>//td/a</td>        ← 左側画面内項目の操作
 <td><td>
</tr>
<tr>
 <td>selectFrame</td>
 <td>relative=top</td>     ← 一旦トップにフォーカスを移動
 <td><td>
</tr>
 <td>selectFrame</td>
 <td>name=content</td>    ← 右側にフォーカスを移動
 <td><td>
</tr>
 <td>click</td>
 <td>name=item</td>     ← 右側画面内項目の操作
 <td><td>
</tr>


★ちなみに、そのフレーム内のHTMLだけを表示させて(フレーム内の画面上で右クリック→コンテキストメニューで選択)
対象としている文字列選択は行えますでしょうか?



説明に適しているサイトがあればよかったのですが・・・


aoiaoi

unread,
Apr 24, 2015, 2:45:08 AM4/24/15
to selen...@googlegroups.com
有難うございます。

★ちなみに、そのフレーム内のHTMLだけを表示させて(フレーム内の画面上で右クリック→コンテキストメニューで選択)
対象としている文字列選択は行えますでしょうか?

⇒こちらは、たとえばフレーム画面上を右クリックし、フレームのソースを開くをコンテキストメニューから選択し、
開いたソース内でclickコマンドのtarget文字列の有無、及び有の場合、カーソルで選択できるか?という認識でよろしいでしょうか。

すみませんが宜しくお願い致します。



2015年4月23日木曜日 22時27分30秒 UTC+9 らんさぶ:

らんさぶ

unread,
Apr 24, 2015, 9:47:37 AM4/24/15
to selen...@googlegroups.com
らんさぶです。

右クリックすると表示されるコンテキストメニューの

このフレーム→このフレームを新しいタブで開く

を選ぶと、新しいタブに通常の画面と同じように表示されるので
ロケーション指定の確認ができると思いますよ。


v...@nifty.com

unread,
Apr 25, 2015, 11:07:53 PM4/25/15
to selen...@googlegroups.com
岩室です。

済みません、都合により反応が遅くなりました。

2015年4月22日水曜日 11時43分53秒 UTC+9 aoiaoi:
>WebDriverだと、厳密に現在のframe/
iframeしかアクセス対象にならないと認識しています。

⇒こちらについてですが、webdriver経由でIDEから実行した場合ということでしょうか?

WebDriverをライブラリとして任意のプログラミング言語を使った場合です。
例えばSeleniumIDEでエクスポートした各種プログラミング言語のソースを実行した場合も合致すると思われます。

さっそくSelenese Runner Javaから実行してみたところ、frameの移行が問題なく実行できました。
(次コマンドである文字列を選択が成功しました。)

ただ、Selenese Runner Javaで実行した場合、以降の下記処理でNGになってしまいました。。。

mouseOver
clickAt

あー、それはSelenese Runnerのバグの可能性がありますね。
状況を再現する簡単なテストケース(テスト用HTML+JSとSeleniumIDEで書いたテストプログラム)を提供いただければ、デバッグできるのですが。

処理のフローでいうと、プルダウンのボタン画像を選択すると一見プルダウンのように選択項目が出てくるのですが、
内部ではプルダウンでは作成していないのかselectコマンドではうまくいかず、上記2つのコマンドを組み合わせて
選択できました。

mouseOver target-要素のid指定
clickAt target-要素のid指定

度々申し訳ありませんが、なにか原因ご存じであればご教示頂きたくお願い致します。。

もしくは要素選択してからクリックに失敗するまでのログがあるだけでも何かわかるかもしれません。

aoiaoi

unread,
Apr 27, 2015, 11:02:59 PM4/27/15
to selen...@googlegroups.com
有難うございます。

教えて頂きました方法で試したところ(このフレーム→このフレームを新しいタブで開く)、該当のロケーションは出てきませんでした。。
(該当のロケーション⇒taegetで指定している文字列)

具体的にいうとツリー状のメニューになっている箇所にある文字列なのですが、
firebugにてソースを見比べると、該当の文字列箇所のツリートップ部分はspanタグでid指定をされているというところまでは
『右クリックすると表示されるコンテキストメニューのこのフレーム→このフレームを新しいタブで開く』から確認したソースで確認できました。
しかしfirebugではその配下にツリー状のメニューのひとつひとつの項目がdivで記載されています。
こちらのdivで記載された内容はらんさぶさんにご教示頂いた『右クリックすると表示されるコンテキストメニューのこのフレーム→このフレームを新しいタブで開く』から確認したソース内にはありませんでした。

ちなみに、divタグが≪div id=test1≫のように文末数字で記載されているのですが、その数字箇所が動的に変動します。
(少し時間が経過するとtest2とかに変更する)
これはどういう仕組みか分かりますでしょうか。(初心者で本当に申し訳ありません)

また最初に回答していました、
『右クリックすると表示されるコンテキストメニューのこのフレーム→このフレームを新しいタブで開く』から確認したソース内に該当文字列がない場合というのは、どのように要素指定を行えばよいかご存じであればご教示頂きたくお願い致します。

何卒宜しくお願い致します。

2015年4月24日金曜日 22時47分37秒 UTC+9 らんさぶ:

らんさぶ

unread,
Apr 28, 2015, 9:03:18 AM4/28/15
to selen...@googlegroups.com
らんさぶです。

フレーム問題は解決という事ですかね。

で、次はロケーション指定問題ですね。
アクセスのタイミングでIDが変わる作りのようですね。
となると、ロケーション指定は IDを使用しない方法に切り替える事になりますね。

フレーム内のページを新しいタブで開いた状態にして
前述していた xPath式(taeget-//div[2]/table/tbody/tr/td[2]/a)は正しく
対象要素が選択できていますかね?

ここの「ロケーター設定」記事を参考に うまく選択できる式を探ってみてください

aoiaoi

unread,
May 11, 2015, 3:25:05 AM5/11/15
to selen...@googlegroups.com
ご連絡遅くなり大変申し訳ありません。

やはりフレームの問題はいまだ解決していないようです。
というのは、該当フレームにスイッチし、[verifytextpresent]で別の固定文字列を検索してもエラーになります。

ここで検索している文字列については、ブラウザからフレームのソースを確認したときに表示される文字列になるので、
本来ちゃんとフレーム移動できていれば成功するはずなのですが、failで終わってしまいます。

おそらくCSSを利用して別で定義しているようなのです。。。

全くうまくいかないので、あきらめるしかないのかな。。と考えています。

色々とご教示頂きありがとうございます。
深謝いたします。


2015年4月28日火曜日 22時03分18秒 UTC+9 らんさぶ:

aoiaoi

unread,
May 12, 2015, 12:50:05 AM5/12/15
to selen...@googlegroups.com
すみません、内容に不備がありました。

>おそらくCSSを利用して別で定義しているようなのです。。。

上記誤ってました。
テキスト検索している文字列はフレームで定義されているテキスト内容になるので
そもそもフレーム移動自体がやはりうまくいっていないと考えられます。


2015年4月28日火曜日 22時03分18秒 UTC+9 らんさぶ:

aoiaoi

unread,
May 12, 2015, 9:21:23 PM5/12/15
to selen...@googlegroups.com
岩室さん

ご返信が遅くなり大変申し訳ありません。
ご回答頂きありがとうございます。

下記内容にてお伺いしたいのですが、


FirefoxプラグインのSeleniumIDEの中で実行する場合は、子のframe/iframeへのアクセスは可能なのですが、
WebDriverだと、厳密に現在のframe/iframeしかアクセス対象にならないと認識しています。

実際、拙作のSelenese Runner Javaでは、フレームのあるページでのelementの取得に大変苦労しています。

Selenese Runner Java: SeleniumIDEのスクリプトを各種ブラウザで実行するツール

その苦労の跡:-)
https://github.com/vmi/selenese-runner-java/blob/master/src/main/java/jp/vmi/selenium/selenese/locator/WebDriverElementFinder.java

・ここで指している現在のframe/iframeというのはtopframe(親frame)という認識で齟齬ないでしょうか。

・苦労の跡リンクにあるelement取得のjavaですが、すみません。javaが分かっておらず(大変申し訳ありません・・('_'))こちらに記載してある内容は具体的にどのようなことが記載されているのでしょうか。。。

恐れ入りますが宜しくお願い致します。


2015年4月19日日曜日 10時25分23秒 UTC+9 v...@nifty.com:

v...@nifty.com

unread,
May 17, 2015, 6:37:48 PM5/17/15
to selen...@googlegroups.com
岩室です。

こちらも反応が悪くて済みません。

2015年5月13日水曜日 10時21分23秒 UTC+9 aoiaoi:
下記内容にてお伺いしたいのですが、

FirefoxプラグインのSeleniumIDEの中で実行する場合は、子のframe/iframeへのアクセスは可能なのですが、
WebDriverだと、厳密に現在のframe/iframeしかアクセス対象にならないと認識しています。

実際、拙作のSelenese Runner Javaでは、フレームのあるページでのelementの取得に大変苦労しています。
(略) 
・ここで指している現在のframe/iframeというのはtopframe(親frame)という認識で齟齬ないでしょうか。

WebDriver APIでは、何もしない場合はトップレベルのフレームが、driver.switchTo().frame(...)を使うと指定したframe/iframeが、findElement等で操作できる対象となります。このとき、子のframe/iframeは対象になりません。
また、findElement等でelementを取得→フレームを移動→以前取得したelementに対してclick等の操作、というような処理を行うと、「そのelementは現在のフレームに存在しない」みたいなエラーが出るため、elementの取り直しが必要になります。

一方、SeleniumIDEのselectFrameでは、子のframe/iframeの中にある要素もlocatorで指定できる対象となります。

・苦労の跡リンクにあるelement取得のjavaですが、すみません。javaが分かっておらず(大変申し訳ありません・・('_'))こちらに記載してある内容は具体的にどのようなことが記載されているのでしょうか。。。

あれは、上記のようなWebDriverとSeleniumIDEとの差異を埋めるのがどれだけ面倒かの例示なので、詳細を見る必要はないです。
(読み解ければ参考にはなると思いますが)

aoiaoi

unread,
May 19, 2015, 3:20:52 AM5/19/15
to selen...@googlegroups.com
ご回答有難うございます。

driver.switchTo().frame(...)

ここで子のframeを指定することはできないのでしょうか。
ただ、ここでframeを指定することはできたとしてもIDEから別ブラウザでの実行ではできないですよね。。

らんさぶさんが上記でおっしゃられておられます下記環境とテストケースで動作確認できたそうなのですが、
このようなケースで何かご存知ないでしょうか。
(岩室さんもこのテストケースで動作確認できた事例等ないでしょうか)

(IDE2.9.0 + IE11)

<tr>
<td>selectFrame</td>
<td>relative=top</td>
<td><td>
</tr>





2015年5月18日月曜日 7時37分48秒 UTC+9 v...@nifty.com:

v...@nifty.com

unread,
May 20, 2015, 6:26:06 PM5/20/15
to selen...@googlegroups.com
岩室です。

2015年5月19日火曜日 16時20分52秒 UTC+9 aoiaoi:
driver.switchTo().frame(...)

ここで子のframeを指定することはできないのでしょうか。

(註:以下はWebDriver API限定の話で、SeleniumIDEで直接実行する場合は関係ありません)
このメソッドにdriver.findElement等で拾ってきたフレーム(frame/iframe)エレメントを渡せばそのフレームに移動します。
この状態でdriver.findElement等を実行した場合、指定したフレームの中にあるエレメントしか拾えません。(親や子のフレームの中にあるエレメントは見えません)
frame(...)では階層を潜っていくしかできないので、別のフレームに移動する場合は、driver.switchTo().parentFrame()で親の階層に戻るか、driver.switchTo().defaultContent()でトップレベルに戻る必要があります。

# さらに、parentFrame()がサポートされていない(未サポート例外を投げてくる)WebDriverもあったりします……。

また、以前の投稿にも書いたように、フレームを移動すると移動前に取得したエレメントは無効になります。
 
ただ、ここでframeを指定することはできたとしてもIDEから別ブラウザでの実行ではできないですよね。。

ここで言う「IDEから別ブラウザでの実行」というのは、IDEで作成したスクリプトをselenium-server-standaloneで実行する場合でしょうか?
この場合はselenium-server-standaloneの実装次第なので何とも。

それとも「テストケースをエクスポート」で他言語のスクリプトに変換した場合でしょうか?
この場合、WebDriverベースでのスクリプトに変換したなら前述のフレームの問題に引っ掛かる可能性が高いです。

これらとselenese-runner以外で別ブラウザでの実行方法は知らないので、情報をいただければ幸いです。
 
らんさぶさんが上記でおっしゃられておられます下記環境とテストケースで動作確認できたそうなのですが、
このようなケースで何かご存知ないでしょうか。
(岩室さんもこのテストケースで動作確認できた事例等ないでしょうか)

(IDE2.9.0 + IE11)

Win8.1(64bit) + IE11/Firefox + Selenium 2.45.0 + selenese-runnerでまずは動作確認しようとしてみたところ、Firefoxで動くごくシンプルなテストケースが、IE11では途中でエラーが出て正しく動きませんでした。
詳細は解析してませんが、IEDriverが壊れてる可能性が高そうです。うーん……。

aoiaoi

unread,
May 21, 2015, 2:46:39 AM5/21/15
to selen...@googlegroups.com
岩室さん

度重なるご返信深謝致します<m(__)m>


driver.switchTo().frame(...)

ここで子のframeを指定することはできないのでしょうか。

(註:以下はWebDriver API限定の話で、SeleniumIDEで直接実行する場合は関係ありません)
このメソッドにdriver.findElement等で拾ってきたフレーム(frame/iframe)エレメントを渡せばそのフレームに移動します。
この状態でdriver.findElement等を実行した場合、指定したフレームの中にあるエレメントしか拾えません。(親や子のフレームの中にあるエレメントは見えません)
frame(...)では階層を潜っていくしかできないので、別のフレームに移動する場合は、driver.switchTo().parentFrame()で親の階層に戻るか、driver.switchTo().defaultContent()でトップレベルに戻る必要があります。

# さらに、parentFrame()がサポートされていない(未サポート例外を投げてくる)WebDriverもあったりします……。

また、以前の投稿にも書いたように、フレームを移動すると移動前に取得したエレメントは無効になります。
 
ただ、ここでframeを指定することはできたとしてもIDEから別ブラウザでの実行ではできないですよね。。

ここで言う「IDEから別ブラウザでの実行」というのは、IDEで作成したスクリプトをselenium-server-standaloneで実行する場合でしょうか?
この場合はselenium-server-standaloneの実装次第なので何とも。

それとも「テストケースをエクスポート」で他言語のスクリプトに変換した場合でしょうか?
この場合、WebDriverベースでのスクリプトに変換したなら前述のフレームの問題に引っ掛かる可能性が高いです。
私が言ってる「IDEから別ブラウザでの実行」というのは、seleniumIDEから[オプション]-[設定]-[webdriver]で別ブラウザを指定して行うことを指しています。
なので、selenium-server-standaloneで実行する場合に該当しているのかな・・・と思います。

恐らく、今回のframe問題は対象のweb自体も特殊な構造をしているので、そちらにも原因があるかと思います。

ちなみに「テストケースをエクスポート」についてもjavaで一度エクスポートしたときにframeの移動部分については、
    // ERROR: Caught exception [ERROR: Unsupported command [selectFrame | name=××× | ]]
という風になり、認識されていないようです。
この場合に、driver.switchTo().frame(...)のメソッドを使ってテストケースを書き換えれば、
webdriverで実行した場合にframe移動が成功するのかなぁ。。?と思っています。(間違えていればご指摘下さい)

ただ、本来の目的である[seleniumIDE]から別ブラウザを指定して実行する(下記URL内容)という方法ではないので、下記URLでのやり方で成功する方法を探っているのですが、それは私が現在検証しているWEBの構造も相まって実現は難しそうです・・。。(@_@;)
http://blog.trident-qa.com/2013/05/selenium-ide-on-chrome-ie-etc/


2015年5月21日木曜日 7時26分06秒 UTC+9 v...@nifty.com:

らんさぶ

unread,
May 21, 2015, 3:15:27 AM5/21/15
to selen...@googlegroups.com
らんさぶです。

なかなか 苦戦していますね

フレームがあるページについて 書いてみました

参考になればよいのですが。

http://qiita.com/gluelan2013/items/57e67a1e0226a3b23c56


ちなみに、実行時のIDEをスクリーンショットは添付できますかね?
(対象が特定できそうな個所はぼかして。コマンドがどこまで進んでいるかが分かればよいので)

aoiaoi

unread,
May 22, 2015, 2:06:47 AM5/22/15
to selen...@googlegroups.com
らんさぶさん

苦戦し過ぎて半分放棄していました。汗

web記事見ました。とても参考になります。有難うございます。
sampleページはアクセスできなかったので、どのようなFRAME構成なのかつかめませんでしたが、
操作内容とテストケースでなんとなくですが分かりました。

ちなみに、
実行時のIDEをスクリーンショットは添付できますかね?
(対象が特定できそうな個所はぼかして。コマンドがどこまで進んでいるかが分かればよいので)

添付致します。
改めてこの結果を見ているとFRAMEの問題なのかよく分からなくなってきました。
この結果のとおりAsserttextで存在しているはずの文字列を指定しているのですが、
エラー(false)となります。




2015年5月21日木曜日 16時15分27秒 UTC+9 らんさぶ:

aoiaoi

unread,
May 22, 2015, 2:08:37 AM5/22/15
to selen...@googlegroups.com



2015年5月21日木曜日 16時15分27秒 UTC+9 らんさぶ:
らんさぶです。

らんさぶ

unread,
May 22, 2015, 2:52:24 AM5/22/15
to selen...@googlegroups.com
らんさぶです

>sampleページはアクセスできなかったので、どのようなFRAME構成なのかつかめませんでしたが、

!!! 

すいません
urlの最後に全角スペースが入っていたためクリックしたら 404に遷移していました。
修正しました!!

スクリーンショットの添付ありがとうございます。

エラーになっている コマンドですが、assertText の 文法は下記なのですがこれは 投稿用に修正されていますか?
 
assertText(locator, pattern)
Generated from getText(locator)
Arguments: locator - an element locator
Returns: the text of the element


aoiaoi

unread,
May 24, 2015, 9:25:37 PM5/24/15
to selen...@googlegroups.com
エラーになっている コマンドですが、assertText の 文法は下記なのですがこれは 投稿用に修正されていますか?
 
assertText(locator, pattern)
Generated from getText(locator)
Arguments: locator - an element locator
Returns: the text of the element

返信遅くなりすみません。

投稿用に修正ですが、対象について、実際はページに存在する文字列を検索として対象値に記載しています。(自分の名前)

自分の名前になるので、今回投稿用に『********』としました。それ以外では修正していません。
私、このコマンドの使い方間違えているのでしょうか?


2015年5月22日金曜日 15時52分24秒 UTC+9 らんさぶ:

らんさぶ

unread,
May 24, 2015, 10:47:11 PM5/24/15
to selen...@googlegroups.com
らんさぶです

ヘルプにあるとおりassertText(locator,pattern)となっているので
 指定した場所(locator) の文字列(pattern) をテストする
と、指定することになりますね。

IDEが表示された状態であれば ブラウザ上の対象文字列の上にマウスカーソルを置いて
右クリックすれば 使用できる コマンドが コンテキストメニューに表示されるので
そこから選ぶと簡単ですね。

ロケーターの指定タイプを変更したい場合の記事は下記に書いています

http://qiita.com/gluelan2013/items/c4f07008a2bbb463514f

aoiaoi

unread,
May 26, 2015, 1:13:41 AM5/26/15
to selen...@googlegroups.com
らんさぶさん

コンテキストから該当のロケーターを指定し、再度asserttextを試しましたが
[error] Actual value '' did not match '
とエラーになりました。

念のためエビデンス添付します。

苦戦しますね・・。webの構造の問題なんでしょうか。。。


2015年5月25日月曜日 11時47分11秒 UTC+9 らんさぶ:

aoiaoi

unread,
May 26, 2015, 1:15:06 AM5/26/15
to selen...@googlegroups.com



2015年5月25日月曜日 11時47分11秒 UTC+9 らんさぶ:

らんさぶ

unread,
May 26, 2015, 1:33:22 AM5/26/15
to selen...@googlegroups.com
らんさぶです


このロケーター指定は 正しいのでしょうか? 
添付用に 「css=html」とされたのでしょうか? 
(この指定だとページ全体を指定したことになりますが 検証対象となる文字列を指定したことにはならないので)


IDEの 「対象」テキストボックスの右横に並んでいる [select][検索]  の検索を押して 確認できますでしょうか?
正しいロケーター指定であれば、ブラウザ上で 検証したい文字列部分がハイライトになるはずです。



aoiaoi

unread,
May 26, 2015, 2:37:12 AM5/26/15
to selen...@googlegroups.com
コンテキストから選択したのですが、よく分からないためエビデンス添付します。

2015年5月26日火曜日 14時33分22秒 UTC+9 らんさぶ:

aoiaoi

unread,
May 26, 2015, 2:38:21 AM5/26/15
to selen...@googlegroups.com



2015年5月26日火曜日 14時33分22秒 UTC+9 らんさぶ:

らんさぶ

unread,
May 26, 2015, 3:42:08 AM5/26/15
to selen...@googlegroups.com

IDEの 「対象」テキストボックスの右横に並んでいる [select][検索]  の検索を押して 確認できますか?
正しいロケーター指定であれば、ブラウザ上で 検証したい文字列部分がハイライトになるはずですが。

らんさぶ

unread,
May 26, 2015, 9:04:00 AM5/26/15
to selen...@googlegroups.com
連投失礼します。


上述の確認とは別に assertText コマンド以外を記録、実行はできるか確認してもらえますか
例えば 同枠内にある テキストリンクなりボタンなりの操作を記録して IDE上で実行すると言う意味です。

これで動けば そこにアクセスできることは確認できるので 問題は ロケーション指定になります。
これで動かなければ フレーム問題が解決していないということになると思います。

aoiaoi

unread,
May 27, 2015, 2:34:53 AM5/27/15
to selen...@googlegroups.com
ご教示有難うございます。


IDEの 「対象」テキストボックスの右横に並んでいる [select][検索]  の検索を押して 確認できますか?
正しいロケーター指定であれば、ブラウザ上で 検証したい文字列部分がハイライトになるはずですが。
→こちらについては、検索を押しても確認できませんでした。


上述の確認とは別に assertText コマンド以外を記録、実行はできるか確認してもらえますか
例えば 同枠内にある テキストリンクなりボタンなりの操作を記録して IDE上で実行すると言う意味です。
→こちらですが、IDE上で実行というのは、Webdriver経由ではなくFirefox上での実行という意味でしょうか?
同フレーム内に、テキストボタンがあるためクリックする操作を記録しました。
<tr>
    <td>click</td>
    <td>id=******</td>
    <td></td>
</tr>

結果:
Webdriver経由→失敗
IDE→『このコマンドを実行』では、クリックするコマンドは失敗しますが、一連の作業で最初からテストケースを実行した場合成功します。
↑うまく説明できていますでしょうか。。。。


2015年5月26日火曜日 22時04分00秒 UTC+9 らんさぶ:

らんさぶ

unread,
May 27, 2015, 2:50:36 AM5/27/15
to selen...@googlegroups.com
らんさぶです。

確認ありがとうございます。


→こちらについては、検索を押しても確認できませんでした。


Webdriver経由→失敗
IDE→『このコマンドを実行』では、
クリックするコマンドは失敗しますが、一連の作業で最初からテストケースを実行した場合成功します。


フレーム内での クリックは 成功しているので 問題点は ロケーション指定のようですね

「検索」ボタンを押して 検証対象となる文字列が ハイライトする ロケーション指定に変更すれば解決するのではないでしょうか

ロケーションの指定方法は css xpath などいろいろあるので違う指定方法で試してみてください

 

aoiaoi

unread,
May 28, 2015, 1:46:33 AM5/28/15
to selen...@googlegroups.com
らんさぶさん

すみません、IDEとWebdriver経由での違いの部分で疑問なのですが、
webdriver経由(メニューの「オプション」「設定・・・」「WebDriver」パネルで設定した場合)で実行した際は失敗します。
この場合もFrame移動はできているが、移動後のロケーション指定が失敗していることになるのでしょうか。


2015年5月27日水曜日 15時50分36秒 UTC+9 らんさぶ:

らんさぶ

unread,
May 28, 2015, 2:40:07 AM5/28/15
to selen...@googlegroups.com
webdriver経由での失敗ですが pause を 500で行っているところを 5000 にしてもクリックは失敗しますか?

ここの数値は milliseconds なので 表示が間に合っていないのではないかと。


aoiaoi

unread,
May 28, 2015, 3:22:18 AM5/28/15
to selen...@googlegroups.com
500の前10000にしていたのですが、同様の失敗でした。
時間はあんまり関係ない気がして待つ時間が長かったので500に変更致しました。

2015年5月28日木曜日 15時40分07秒 UTC+9 らんさぶ:

らんさぶ

unread,
May 29, 2015, 12:12:37 AM5/29/15
to selen...@googlegroups.com
手元の環境で実行した際 フレームが表示される前に 
switchFrameコマンドが動いて エラーになっていたことがあったのでそれかと思ったのですが。

タイミングをとって IDEで動いたスクリプトであれば
webDriver経由で Firefox / IEともに 動いているんですが・・・



2015年5月28日木曜日 16時22分18秒 UTC+9 aoiaoi:

aoiaoi

unread,
May 29, 2015, 12:40:26 AM5/29/15
to selen...@googlegroups.com
らんさぶさん

自分もそう思い、pauseを入れたりして試していたのですが、うまくいかず・・。

私が今予測しているのが、対象にしているWEBが社内システムなのですが、WEBの構造として
①TOPページ(ログイン画面)
②ログイン画面上でID、PWを入力
③ログイン後のページへ遷移(Frame画面)

③のログイン後のページが、ユーザ情報を保持した状態のページになるのですが(ユーザIDに紐づく個人情報が記載されているページ)、
それがなーんかあやしい気がします。どこがあやしいとか分かってないのですが。。。。
やはりWEBの構造に原因があるような気がします・・・。


2015年5月29日金曜日 13時12分37秒 UTC+9 らんさぶ:
Reply all
Reply to author
Forward
0 new messages