Skip to main content

下記現象になっていて、最適な解決方法が分からず困っています。

【現象】

処理が終了するとダイアログウィンドウを表示するアプリケーションがあります。

ダイアログウィンドウが表示するのを待って次のフローに進めたいので、

「If」アクションで「ウィンドウが存在する」を使ってみたところ、ダイアログウィンドウが表示してないのに、すぐIf判定が真になる動作をします。

「If」アクションで「レコーダー オブジェクトが存在します」を使ってみたところ、ダイアログウィンドウが表示してもIf判定は真にならず、試行時間に設定している時間が経過するまでIf判定は真になりません。

仕方がないので、「If」アクションで「画像認識」を使ってうまくいきました。

下記検証結果から、メインウィンドウとダイアログウィンドウのTitleが同一のときに発生する現象だと考えています。

【検証】

ダイアログウィンドウを表示する検証用のアプリケーションを作って試したところ、メインウィンドウとダイアログウィンドウでTitleが異なる場合には、「If」アクションで「ウィンドウが存在する」を使ってダイアログウィンドウが表示するのを待機することができました。

【質問事項】

ウィンドウTitleが同一のウィンドウが複数存在するときは、画像認識を使って待機させるしか方法は無いのでしょうか。メインウィンドウとダイアログウィンドウのTitleは同一ですが、Classが異なっていることは確認済です。ウィンドウを指定するときにTitleだけでなくClassとか指定する方法があれば、解決すると思いますが、その方法が分かりません。

Hi @masuo,

 

If both the Windows are having same title then, please try with If →Object exists and try if you can highlight any unique element within these Windows. Hope this will help.


リプライありがとう Padmakumar

「If」アクションで「レコーダー オブジェクトが存在します」については既に試しています。残念ながら、うまくいきませんでした。


Thanks for the reply Padmakumar

I've already tried the "If" action "Recorder object exists". Unfortunately, it didn't work.

 

Change the package version or the Object Capturing technology type and try again.


「If」アクションで「レコーダー オブジェクトが存在します」を使って実装することができました。

オブジェクトをキャプチャするときのテクノロジータイプをデフォルトの「Microsoft Active Accessibility」から「Microsoft UI オートメーション」変更することで、問題が解決しました。

<変更前>

テクノロジータイプ:Microsoft Active Accessibility

<変更後>

テクノロジータイプ:Microsoft UI オートメーション


Glad to know that it worked out for you.

 


Reply