Loading [MathJax]/extensions/tex2jax.js

2021年10月31日日曜日

自動テストの練習5 (UWSC編④) 右クリック




やりたいこと

 前回の続きになります。

UWPアプリの簡単なテスト(スモークテスト?)をUWSCでやってみるの4回目です。

4回目は右クリックする操作を自動化してみます。


最初に設定したテストケースのTC5, TC6になります。

IDTestCaseの説明TestCaseの手順出力期待値
TC5Aboutメニュー右クリック
Aboutメニューを選択
Aboutダイアログが表示される
TC6Settingsメニュー右クリック
Settingsメニューを選択
Settingsダイアログが表示される

ソース

ソースコードはこちらになります。

右クリックするところだけのコードになります。

---
  1. // TC5 About  
  2. CheckAbout()  
  3.   
  4. // About  
  5. PROCEDURE CheckAbout()  
  6.   
  7.     WaitWindowText("memotter""What", 10)  
  8.       
  9.     id = GETID("memotter")  
  10.       
  11.     //①右クリック  
  12.     openbtn = CLKITEM(id, "Open", CLK_RIGHTCLK)  
  13.     IF openbtn = TRUE   
  14.         about = CLKITEM(id, "About")  
  15.         If about = TRUE  
  16.             PRINT "OK About成功"  
  17.             PrintAccText(id)      
  18.                           
  19.             retOkt = CLKITEM(id, "OK")  
  20.         ELSE  
  21.             PRINT "NG About失敗"  
  22.         ENDIF   
  23.     ELSE  
  24.         PRINT "右クリック失敗"   
  25.     ENDIF  
  26.       
  27. FEND  
  28.   
  29.   
  30.   
  31. // ②AccTextを全部出す  
  32. PROCEDURE PrintAccText(id)  
  33.     NUM = GETITEM(id, ITM_ACCTXT)  
  34.   
  35.     FOR j = 0 TO (NUM-1)   
  36.         PRINT ALL_ITEM_LIST[j]  
  37.     NEXT  
  38.   
  39. FEND  
  40.   
  41. // ウィンドウの中のテキストが表示されるのを待つ  
  42. FUNCTION WaitWindowText(WindowTitle, text, timeOut)  
  43.     RESULT = FALSE    
  44.   
  45.     // ウィンドウが表示されるのをtimeOutの時間まで待つ  
  46.     FOR i = 0 TO timeOut  
  47.         //ウィンドウのID取得  
  48.         id = GETID(WindowTitle)  
  49.       
  50.         staticText = GETITEM(id, ITM_STATIC)  
  51.         IF staticText <> 0  
  52.             FOR j = 0 TO staticText -1   
  53.                 n = POS(text, ALL_ITEM_LIST[j])    
  54.                 IFB n >= 1  
  55.                     // PRINT text + "が見つかった"  
  56.                     BREAK 2                       
  57.                 ELSE  
  58.                     // PRINT text + "が見つからない"  
  59.                 ENDIF                 
  60.             NEXT  
  61.         ELSE  
  62.             PRINT "static text なし"  
  63.         ENDIF  
  64.           
  65.         // 1秒待機  
  66.         SLEEP(1)   
  67.     NEXT  
  68.       
  69. FEND  
---

解説

①右クリック
右クリックの操作自体は簡単で、標準関数のCLKITEM()の第3引数に、CLK_RIGHTCLKだけで実現ができます。

ちょっと悩んだのが、どこを右クリックするか? という問題になります。
この関数の場合なにもないところは、右クリックできないので、右クリックの目印になるコントロールが必要になります。

Openボタンを右クリックした場合もコンテキストメニューが表示されることが分かったので、①のように"Open"を右クリックするというコードになってます。

②アバウトダイアログのテキストを表示
成功した場合にPrintAccText(自作関数)でスタティク文字をコンソールに全部表示するようにしてます。
GETITEMの引数でITM_STATICというのもあるのですが、これだと文字列がとれない文字れるがあったので、ITM_ACCTXTを指定して取得してます。

表示された文字が正しいかどうかまでの判定はしてなく、文字列を表示するところまでとなってます。

結果


実行後はコンソールに文字が表示されます。

今回も特に苦労せず進められました。




0 件のコメント:
コメントを投稿