3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【SetROBO】UI記録モードで入力を記録する際の備忘録

Posted at

はじめに

こんにちは。社内PCのキッティングを担当している@Cheeeeeseです。
前回の記事に引き続き、「UI記録モード」についてです。

V2.0で少しずつシナリオ作成を進めているのですが、UI記録モードの弱点を見つけてしまったので、今後のためにも記録しておきます。

環境

  • Windows 11 Pro 22H2 (64bit)
  • SetROBO for Kitting V2.0

【弱点】入力(Input)が記録されない場合がある

UI記録モードで色々記録が取れるようにはなったのですが、入力の記録は取れませんでした。

前のバージョンだと記録できる画面だと入力操作も「~.Input("ほにゃほにゃ");」と自動でコードが生成されていたのですが、UI記録モードだとEditをクリックしたことのコードは自動生成されるけど、入力操作のInputは自動生成されないようです。

例えばこことか

なので、Editへの入力は修正が必要でした。
 

しかも...

この設定画面、「~.Input("ほにゃ")」じゃ入力できませんでした。

そもそもUI記録モードだとInput自体使えないのかなと思ったんだけど、
別の画面だとInput使えたので多分この設定画面への入力がダメなのかも。

設定画面の入力コード

Inputはダメだったけど、キー操作は使えたので、今回はクリップボードにコピー&貼り付けで対応しました。

これで入力できました。
 

SetROBO
using System;
using System.Drawing;
using Arp.Prova.ImageLibrary;
using Arp.Prova.CsvLib;
using Arp.Prova.PlayLib;

using System.Windows.Forms;

// CodeClass
public class CodeClass
{
	public static int CodeStart()
	{
		int waitTime = 1000;
		string networkName = "";
		string password = "";
		
		//[ネットワークとインターネット > Wi-Fi]を起動
		PlayLib.ProcessStart("ms-settings:network-wifi");
		
		//設定画面確認
		if(PlayLib.WaitWindow("設定", true, 30) == false)
		{
			PlayLib.TestLogError("【ERROR】[設定]画面の起動に失敗しました。");
			return -1;
		}
		
		//既知のネットワークを管理をクリック
		PlayLib.Window("設定").UIGroup("既知のネットワークを管理").Click();
		PlayLib.Sleep(waitTime);
		
		//ネットワークの追加をクリック
		PlayLib.Window("設定").UIButton("ネットワークの追加").Click();
		PlayLib.Sleep(waitTime);
		
		//ネットワーク名のEditをクリック
		PlayLib.Window("設定").UIEdit("ネットワーク名").Click();
		
		//クリップボードにネットワーク名を設定
		Clipboard.SetText(networkName);
		
		//ネットワーク名に貼り付け
		PlayLib.Window("設定").UIEdit("ネットワーク名").Input("{Ctrl_Down}v{Ctrl_Up}");
		PlayLib.Sleep(waitTime);
		
		//セキュリティの種類のコンボボックスを表示
		PlayLib.Window("設定").UIComboBox("セキュリティの種類").Click();
		PlayLib.Sleep(waitTime);
		
		//WPA2-パーソナル AESを選択
		PlayLib.Window("設定").UIListItem("WPA2-パーソナル AES").Click();
		PlayLib.Sleep(waitTime);
		
		//セキュリティ キーのEditをクリック
		PlayLib.Window("設定").UIEdit("セキュリティ キー").Click();
		
		//クリップボードにパスワードを設定
		Clipboard.SetText(password);
		
		//セキュリティ キーに貼り付け
		PlayLib.Window("設定").UIEdit("セキュリティ キー").Input("{Ctrl_Down}v{Ctrl_Up}");
		PlayLib.Sleep(waitTime);
		
		//自動的に接続するにチェックを入れる
		PlayLib.Window("設定").UICheckBox("自動的に接続する").Click();
		PlayLib.Sleep(waitTime);
		
		//保存ボタンをクリック
		PlayLib.Window("設定").UIButton("保存").Click();
		PlayLib.Sleep(waitTime);
		
		//設定画面を閉じる
		PlayLib.Window("設定").Close();

		return 0;
	}
}

ちなみに(前から記録が取れる画面の場合)

前から記録が取れる画面でも、UI記録モードだとコントロール名が取れない現象もあります。

例えば、この「コンピューター名/ドメイン名の変更」画面のコンピューター名を入力する操作を記録すると

旧バージョンの場合:PlayLib.Window("コンピューター名/ドメイン名の変更").Edit("コンピューター名(C):").Input("PC10");
⇒Editのコントロール名がちゃんと記録されている。

UI記録モードの場合:PlayLib.Window("コンピューター名/ドメイン名の変更").UIEdit("UIEdit&1").Input("PC01");
⇒UIEditのコントロール名が「"UIEdit&1"」になってしまう。

これに関しては、記録モードの切り替えが出来るので、「記録モード(x1.9.5.0以前)」に切り替えて入力操作を記録するという方法もありです。(少し面倒ですが)

:raised_hand:とにかく、「UI記録モード」で入力操作を記録した場合は要確認です!

最後に

まさかの入力操作のコードは自動生成されませんでした。

参考にしたサイト

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?