2014年10月23日木曜日

IDEのコメント入力はログに出力しない-echoコマンドを使います

Selenium IDEに[コメントを挿入]とあるが、このコメントはログに出力しないので、
ログに出力したいコメントは、echoコマンドを使ってください


コメントを入力したい箇所で、右クリックメニューを表示し、[コメントを挿入]を選択


コメント入力行が選択行の上に入るので、そこでコメントを入力


このSeleniumスクリプトを実行すると、コメントはログタブに出力していないことが分かります
コメントをログに出力したい場合は、echoコマンドを使ってください




2014年10月20日月曜日

Javascriptを知っていれば、結構、記述できます

Javascriptを知っていて、storeExpressionコマンドとstoreEvalコマンドを活用すると結構、記述できます

例えば、下の[個人アドレス帳 - すべて]からAグループ、Bグループ、Cグループを削除したい場合、


フロー制御で1つずつ指定して[グループの削除]をクリックする時、
どうやって各グループを指定しようか?と考えます
そこで、
storeExpressionコマンドで対象にするグループ名を取得します

storeExpression  javascript
            { selenium.getText( "//div[@id='dtree-adrTree']/div[@class='clip']/div["
                          + storedVars['no']
                          + "]" ) 
            }
            w
変数wに変数noの示す文字列を取得します
これを使用して、削除対象にする要素のindexを得ます

削除対象のindexを使って、グループ削除を指定するために右クリックメニューを表示します
storeEvalコマンドを使って、contextMenuAtコマンドのlocatorを作成します

storeEval  javascript
        { var s = "//div[@id='dtree-adrTree']/div[@class='clip']/div["
              + storedVars['no']
              + "]";
          storedVars['w'] = s; 
        }
        f
これで、
  contextMenuAt  ${w}  80,120
を実行します
実際のコードは、
  contextMenuAt //div[@id='dtree-adrTree']/div[@class='clip']/div[2]  80,120
を実行しています



storeEvalコマンドを実行すると、ログに
  script is: //div[@id='dtree-adrTree']/div[@class='clip']/div[1] 
を出力します

2014年10月9日木曜日

IDEを他のブラウザで動作させる

Selenium IDEをChromeやIEで動作せることが、一応、できます
一応というのは、多少の制約があります

まずは、動作の手順を...

Step1.SeleniumIDEのオプションで、WebDriver使用を設定しておきます

 SeleniumIDEのメニューからオプションウィンドウのWebDriverタブで設定します

 Enable WebDriver Playbackにチェックを入れ、ブラウザを指定します



Step2.Selenium ServerとWebDriverをコマンドラインから起動します

IEの場合
java -jar selenium-server-standalone-2.43.0.jar -Dwebdriver.ie.driver=.\IEDriverServer.exe

Chromeの場合
java -jar selenium-server-standalone-2.43.0.jar -Dwebdriver.chrome.driver=.\chromedriver.exe

例.Chrome指定で起動すると下のようにメッセージを出力してSeleniumIDEの実行を待ちます





























Step3.SeleniumIDEでテストケースを実行します

例えば、

実行すると、



多少の制約とは...

  1. テストケース毎にブラウザを起動しますので、直前のテスト結果を利用してのテストを行いにくくなります
     テストケース毎に起動するブラウザは、closeコマンドで終了させることができます
  2. 画面キャプチャ captureEntirePageScreenshotコマンドはエラーになります
     JavaSrciptを記述できるので画面キャプチャできる実行ファイル(.exeとか)を作成して呼び出すような対処をすると良いかなと思います
  3. 実行前にSeleniumコマンドを修正・追加などを行うことはできますが、実行した後にSeleniumコマンドを修正・追加して実行はできません
     一度、終了してから実行するようになります

あと、気になるとしたら...
  1. 変数はテストケースを越えて使用できます
  2. ログファイルへの出力はFireFoxと同じ様にできます


2014年10月7日火曜日

classに含まれている要素を調べる - ロケーション指定

太字になっているとか、スターが付いているとか付いていないとかを知るには、セレクタcontainsで要素がclass指定に含まれているか調べます

例えば、テストメール14が、未読の場合は太字になっています



ページは
<div style="min-width: 776px;" id="msg-123" class="ui-ll clickable ll-even unseen">
と記述しています
classの.ui-ll.unseenが太字になります

エラーメッセージを出力したいので、storeElementPresentコマンドを使いました
storeElementPresent xpath=//div[@id='lbxdata']/div[1][contains(@class,'unseen')] flg

太字(未読)であれば、変数flgにtrue, 既読であればfalseをセットします


2014年10月3日金曜日

配列で扱いたいとき

メニュー項目の確認では、配列で扱いたいときがあります

例えば、移動メニューでは下の様に配列のindexを使って指定します

[1]の項目は、[1]をつけなくても[1]と扱われます



mouseDownの後にmouseUpしないと

チェックボックスにチェックすることでメールを選択するために mouseDownコマンドを使用しました
mouseDownだけでは下の様になります



このままにしたくない場合は、mouseUpコマンドを実行します

2014年10月2日木曜日

ドラッグ&ドロップで移動するとき

メール一覧から、選択したメールをアーカイブフォルダに移動するときのSeleniumコマンドを下の手順で実行します

 ドラッグ&ドロップは、dragAndDropToObjectコマンドを使います

 ただし、対象は選択しておく必要があるようです


 *ブラウザの実行を待つために、pauseコマンドは必要です