やりたいこと
前回の続きになります。
UWPアプリの簡単なテスト(スモークテスト?)をUWSCでやってみるの4回目です。
4回目は右クリックする操作を自動化してみます。
最初に設定したテストケースのTC5, TC6になります。
ソース
ソースコードはこちらになります。
右クリックするところだけのコードになります。
// TC5 About CheckAbout() // About PROCEDURE CheckAbout() WaitWindowText("memotter", "What", 10) id = GETID("memotter") //①右クリック openbtn = CLKITEM(id, "Open", CLK_RIGHTCLK) IF openbtn = TRUE about = CLKITEM(id, "About") If about = TRUE PRINT "OK About成功" PrintAccText(id) retOkt = CLKITEM(id, "OK") ELSE PRINT "NG About失敗" ENDIF ELSE PRINT "右クリック失敗" ENDIF FEND // ②AccTextを全部出す PROCEDURE PrintAccText(id) NUM = GETITEM(id, ITM_ACCTXT) FOR j = 0 TO (NUM-1) PRINT ALL_ITEM_LIST[j] NEXT FEND // ウィンドウの中のテキストが表示されるのを待つ FUNCTION WaitWindowText(WindowTitle, text, timeOut) RESULT = FALSE // ウィンドウが表示されるのをtimeOutの時間まで待つ FOR i = 0 TO timeOut //ウィンドウのID取得 id = GETID(WindowTitle) staticText = GETITEM(id, ITM_STATIC) IF staticText <> 0 FOR j = 0 TO staticText -1 n = POS(text, ALL_ITEM_LIST[j]) IFB n >= 1 // PRINT text + "が見つかった" BREAK 2 ELSE // PRINT text + "が見つからない" ENDIF NEXT ELSE PRINT "static text なし" ENDIF // 1秒待機 SLEEP(1) NEXT FEND---
解説
①右クリック
右クリックの操作自体は簡単で、標準関数のCLKITEM()の第3引数に、CLK_RIGHTCLKだけで実現ができます。
ちょっと悩んだのが、どこを右クリックするか? という問題になります。
この関数の場合なにもないところは、右クリックできないので、右クリックの目印になるコントロールが必要になります。
Openボタンを右クリックした場合もコンテキストメニューが表示されることが分かったので、①のように"Open"を右クリックするというコードになってます。
②アバウトダイアログのテキストを表示
成功した場合にPrintAccText(自作関数)でスタティク文字をコンソールに全部表示するようにしてます。
GETITEMの引数でITM_STATICというのもあるのですが、これだと文字列がとれない文字れるがあったので、ITM_ACCTXTを指定して取得してます。
表示された文字が正しいかどうかまでの判定はしてなく、文字列を表示するところまでとなってます。
結果
実行後はコンソールに文字が表示されます。
今回も特に苦労せず進められました。
0 件のコメント:
コメントを投稿