やりたいこと
前回の続きになります。
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 件のコメント:
コメントを投稿