スクリプトの再生時にエラーとなってしまい原因が分かりません

472 views
Skip to first unread message

sseeiiggoohh hhaattaa

unread,
Oct 14, 2014, 1:39:39 AM10/14/14
to selen...@googlegroups.com
こんにちは みなさん

 SeleniumRC+SeleniumIDE を使い始めようとしている初心者です。
 記録、追記したスクリプトの再生時にエラーとなってしまい原因が分かりません。HPや「実践Selenium WebDriver」を拝見していますがスキル不足の為、理解不十分で解決に至っていません。
 自身のスキル不足が原因で恐縮なのですがアドバイス頂ければ幸いです。

実行環境
 selenium-server-standalone 2.43.1
 seleniumIDE 2.8.0
 JAVA     1.6.0_23
 Windows   7 SP1

状況
 ケース1.OK   GoogleのHPにてキーワード検索(環境が整っていることの確認)
  ケース2-1.OK  意図したHPにてID,PASSWORDを入力し「実行」ボタンの押下。
    2-2.OK  遷移した画面にて「新規」ボタンを押下。
    2-3.NG  遷移した画面にて「FROM」、「TO」の項目への入力ができない。
           直ちに次のコマンドに進んでしまう。

 ケース3-1.OK  意図したHPにてID,PASSWORDを入力し「実行」ボタンの押下。
    3-2.OK  遷移した画面にて「新規」ボタンを押下。
    3-3.NG  遷移した画面にて「FROM」、「TO」の項目への入力ができない。
         Pause 10000 にて保留出来るが入力できない。
         typeAndWait を指定しているが入力できていない状態で次のコマンドに進んでしまう。
 

ログ(FROM、TO項目への入力部分)
ケース2
[info] Executing: |pause | 10000 | |
[info] Executing: |type | id=FROM | tokyo |
[info] Executing: |type | id=TO   | osaka |

[info] Executing: |pause | 10000 | |
[info] Executing: |click | css=AAA | |
[info] Executing: |click | css=BBB > a.selector | |
[info] Executing: |typeAndWait | id=CCC | 22Oct14 |
[error] Timed out after 30000ms
  
 ケース3
[info] Executing: |pause | 10000 | |
[info] Executing: |typeAndWait | id=FROM | tokyo |
[error] Timed out after 30000ms

[info] Executing: |pause | 10000 | |
[info] Executing: |typeAndWait | id=TO | osaka |
[error] Timed out after 30000ms

[info] Executing: |pause | 10000 | |
 


想像
 1.該当項目はソース上、階層の深い所にあるため、seleniumIDEでは指定できない。
   その為、Pauseで一時停止できても該当項目に入力できない。(どこかのHPでそのような事例を読みましたが定かではありません)


ソース(全体の一部。「FROM」のソース部分は階層深い所です。最下部参照)
 <div class=xxxx>
                <div class=yyy>
                    <div class=zzz>
                        <div id=aaa>
                            <div class=bbb>
                                <div ccc=ddd> … </div>
                                <div eee=fff> … </div>
                                <div class=ggg>
                                    <div class=hhh>
                                        <div class=iii> … </div>
                                        <div class=jjj>
                                            <div _kkk=lll> … </div>
                                            <div _kkk=mmm> … </div>
                                            <div _kkk=nnn>
                                                <div class=ooo>
                                                    <span class=ppp> … </span>
                                                    <div id=qqq>
                                                        <form id=rrr>
                                                            <span class=sss> … </span>
                                                            <div class=ttt>
                                                                <div id=uuu> … </div>
                                                                <table id=vvv>
                                                                    <thead class=www> …</thead>
                                                                    <tbody class=xxx>
                                                                        <tr class=yyy> …</tr>
                                                                        <tr>
                                                                            <td>
                                                                                <s111 id=zzz>
                                                                                    <label class=xxx> … </label>
                                                                                    <input id="FROM" class="" type="text" uicerrorcls="error" value="" name="locationXX" autocomplete="off" uic="true" form="[object HTMLFormElement]"></input>
                                                                                </span>

以上

has...@gmail.com

unread,
Oct 14, 2014, 5:09:16 AM10/14/14
to selen...@googlegroups.com


はじめまして。

私の実行環境ですが、ひとまずFireFox(24.0)のSeleium IDE(2.8.0)で実行しています。
sseeiiggoohh hhaattaa:さんが望んでいるような処理なのかはわからないのですが、
FROMしかないので、同じところにTOとかCCCとかひとまず追加してみて、
ケースも自分なりに解釈して合わせてみましたが、
ちょっと違いますかね・・・?^^;

clickを使うとどうしてもすぐに処理しようとするので、
clickAndWaitとかを使う方が効果的なんでしょうか・・・。

























2014年10月14日火曜日 14時39分39秒 UTC+9 sseeiiggoohh hhaattaa:

sseeiiggoohh hhaattaa

unread,
Oct 14, 2014, 6:01:15 AM10/14/14
to selen...@googlegroups.com
has...@gmail.comさん

素早く、コメント頂き、ありがとうございます。
こちらで試行して、結果をご報告します!!

らんさぶ

unread,
Oct 14, 2014, 9:42:54 AM10/14/14
to selen...@googlegroups.com
こんにちは らんさぶ です。

こちら SeleniumIDEで記録されていると思われますが、

「新規」ボタンを押下 した後の画面(From とTOを入力する画面ですね)で、 
TYPEコマンドの行だけ実行(その行をクリック)した場合入力されていますでしょうか?

場所が特定できない場合 Location not found でエラーになると思います。
が ログに出ているエラーは その後のタイムアウト?ですかね?
その後の clickコマンド で サーバに値を送っているのであれば clickAndWait を使った方がよいと思います

入力できないという状態の判断は、clickした後の画面に表示されないということでされているのでしょうか?

もう1つ気になるのは ここでの処理に Ajaxは動いていますか?
入力に対してJavaScript で処理をしているため値が確定していないうちに clickコマンドを実行している可能性はどうでしょう?


ちなみに 私自身 typeAndWait コマンドを使ったことがないのですが、どのようなシーンで使うコマンドなんでしょうね。。。。


階層の深いところで指定できないというのは遭遇したことはありませんが、ブラウザがHTMLを DOMツリーにレンダリングできるサイズであれば
指定できないということは起きないような気がします(レンダリングできないほどのサイズだとしたら 画面表示もされないでしょうね)


sseeiiggoohh hhaattaa

unread,
Oct 14, 2014, 11:15:35 PM10/14/14
to selen...@googlegroups.com
こんには  らんさぶさん

丁寧なコメントありがとうございます。適切なポイントをアドバイス頂き、ありがとうございます。引き続き全シナリオを記録、再生できるまで頑張ります!

>こちら SeleniumIDEで記録されていると思われますが、
はい。SeleniumIDE2.8.0(Firefox 24.4.0) を使用しています。

>「新規」ボタンを押下 した後の画面(From とTOを入力する画面ですね)で、 
>TYPEコマンドの行だけ実行(その行をクリック)した場合入力されていますでしょうか?

下記実行前にFROM項目、TO項目の入力不備に気が付き、訂正しました。(誤:tokyo osaka 正:TOKYO OSAKA)

typeコマンドで実行     →FROM項目、TO項目ともに入力可。
typeAndWaitコマンドで実行 →FROM項目、TO項目ともに入力可。
clickAndWaitで実行     →FROM項目、TO項目ともに入力されず。

確認のため、FROM項目をCAPS ON(正当)、TO項目をCAPS OFF(不正)で実施。
typeコマンドで実行     →FROM項目、TO項目ともに入力されず。 

原因は入力データ不備と思います。
 スクリプト記録時には自動で修正されたようですが記録上は不正な値のままでした。
 スクリプト再生時に自動で修正されることまでは期待しませんし、主目的ではないので入力値を修正しました。


>場所が特定できない場合 Location not found でエラーになると思います。
>が ログに出ているエラーは その後のタイムアウト?ですかね?
はい。[error]Timed out after 30000ms   です。

>その後の clickコマンド で サーバに値を送っているのであれば clickAndWait を使った方がよい>と思います
>入力できないという状態の判断は、clickした後の画面に表示されないということでされているのでしょうか?
>もう1つ気になるのは ここでの処理に Ajaxは動いていますか?
入力チェックロジック(大文字小文字)や先頭文字を入力すると候補地を出す機能でも使っているかも知れません。
推測のお返事で申し訳ないです。


>入力に対してJavaScript で処理をしているため値が確定していないうちに clickコマンドを実行して
>いる可能性はどうでしょう?
ご指摘の可能性が大変高いと思います。
現象として、FROM項目、TO項目ともに正当な入力であればtypeコマンドで入力できました。
項目の入力チェックロジック(大文字小文字)が端末内で動いています。

>ちなみに 私自身 typeAndWait コマンドを使ったことがないのですが、どのようなシーンで使うコマン
>ドなんでしょうね。。。。
恥ずかしながらよく理解せずに使用しました。
タイプしたあとに発生するページ遷移のロード完了を待つことは今回の目的には不適当です。


>階層の深いところで指定できないというのは遭遇したことはありませんが、ブラウザがHTMLを DOMツリ>ーにレンダリングできるサイズであれば
>指定できないということは起きないような気がします(レンダリングできないほどのサイズだとしたら >画面表示もされないでしょうね)
ありがとうございます。階層が深いことが原因ではないと理解できました。


sseeiiggoohh hhaattaa

unread,
Oct 14, 2014, 11:22:55 PM10/14/14
to selen...@googlegroups.com
has...@gmail.comさん

 直接原因としてスクリプト記録時に入力値が不正であったことがわかりました。

 一旦、Typeコマンドにて試行しておりますがアドバイス頂いたclickAndWait の方が適切(Pause不要)ですのでスクリプト修正して試行してみます。

 アドバイスありがとうございます!
Reply all
Reply to author
Forward
0 new messages