2014年8月20日水曜日

4.拡張スクリプト

4.拡張スクリプト
4.1.  Flow Control - Goto and While Loops

制御構造を記述できる拡張スクリプトである。
この拡張スクリプトはSeleniumIDEで実行する。Selenium2に移行する際には、コメントアウトされるが、試験手順の参考になる。

●  while文の使い方
全てのメールを移動する為に、タイトル一覧に表示されている送信済みタイトルのチェックボックスにチェックする

送信済みタイトルをカウントする。
verifyXpathCount
xpath=(//input[@name='mid'])
cnt1stSend

verifyXpathCountコマンド:xpathの検証とカウントを行うコマンド
全ての対象にチェックを行う
storeEval
javascript{storedVars['cnt1stSend']}
n
while
storedVars['n'] > 0

click
xpath=(//input[@name='mid'])[${n}]

storeEval
javascript{storedVars['n']-1}
n
endWhile




●  gotoif文、goto文、label文の使い方
受信箱のメールを全て削除後、トップページに戻る
clickAndWait
link=regexp:受信箱*

label
AllCheck

storeTextPresent
[#]次ページ
flg
storeXpathCount
xpath=(//input[@name='mid'])
cnt
storeEval
javascript{1}
n
while
storedVars['n'] <= storedVars['cnt']

click
xpath=(//input[@name='mid'])[${n}]

storeEval
javascript{storedVars['n']+1}
n
endWhile


while
storedVars['n'] <= storedVars['cnt']

select
name=operation
label=削除
clickAndWait
css=input[type="submit"]

gotoIf
storedVars['flg']==false
AllDelete
goto
AllCheck

label
AllDelete

clickAndWait
link=トップページ





4.2.  RollUpコマンド

複数のコマンドを組み合わせ、1つルールとして使用できるコマンドのこと。

RollUpコマンドは、Javaソースに変換すると、SeleniumAPIとして作成するが、自作コマンドであるため内容は移行しない。その内容を使用したい場合には、移行後に改めて自作する。

下記にuser-extensions.jsでの例にて使用方法を説明する。

メニュー[オプション] 一般タブのSelenium Core拡張スクリプト(user-extensions.js)のパスに設定する。

[リロード]ボタンは、同じタブにある「アクティブに開発者向けツール」をチェックすることで使用できる。スクリプトの再読み込みを行うので編集しながらテストを行うことができる。
 また、アイコンメニューからもリロードできる。図4の赤丸で囲んだアイコンをクリックする。

コマンドフィールドにRollupを入力すると複数のルールがある場合、対象フィールドで登録しているルールのリストを表示する。

●  定義の仕方
例を使って説明する。

例.タイトル一覧のどのページにも必ず存在するリンクを検証する為、Rollupコマンドを作成し、ルール名をverifyTitleListとする。

①  RollupManager()Rollupコマンドを使用可能にする。
②  manager.addRollupRuleRollupコマンドで使用するルールをRollupManagerに登録する。登録できた場合、IDEの対象フィールドでの一覧に表示する。
manager.addRollupRulename:でルール名。expandedCommands:でコマンド群。
スクリプト内容
var manager = new RollupManager();
manager.addRollupRule({
    name: 'verifyTitleList' 
  , description: 'Veryfy title list'
  , args: [ { name: 'text', description: 'common text of title list' } ]
  , commandMatchers: [ ] 
  , getExpandedCommands: function(args) {
    var commands = [];
    commands.push({ command: 'verifyElementPresent' , target: 'link=[0]メニューを表示' });
    commands.push({ command: 'verifyElementPresent' , target: 'link=作成' });
    commands.push({ command: 'verifyElementPresent' , target: 'link=検索' });
    commands.push({ command: 'verifyElementPresent' , target: 'link=受信' });
    commands.push({ command: 'verifyElementPresent' , target: 'link=全てを既読にする' });
    commands.push({ command: 'verifyElementPresent' , target: 'link=トップページ' });
    commands.push({ command: 'verifyElementPresent' , target: 'link=ログアウト' });
  return commands;
   }
});


●  実行コマンド
IDEでは下図の様に入力する。下側ウィンドウのRollupタブに定義内容のdescriptionを表示する。

上に戻る

0 件のコメント:

コメントを投稿