アプリ立ち上げ時のログイン子画面との連携について

様々なアプリでありがちなのですが。。。
起動するとアプリと並列でログイン子画面が出てきて、ログインすると
バックにあるアプリがアクティベートされるような場合の連携はどのようなシナリオに
すればいいでしょうか?

アプリ起動は[OpenApplication]を使うのは問題ないのですが、Do文の中でログイン子画面に
どのように連携すればいいのか困っています。
ログイン子画面は1日1回パスワードを入力すると以降は2度と出てこない仕様です。
Do文の中で[Find Element]を使うのが定石でしょうか?

こんにちは。
回答を考えていく前にちょっといくつか先に状況を確認させてもらえればと。

・OpenApplicationのアクティビティ自体は、Doの中身を空にしたときに正常終了しますか?
(場合によってはログイン子画面の操作が完了するまでアクティビティが完了しないこともあったりするので)
・ログイン子画面はダイアログでしょうか?それとも作り込まれたウィンドウ?
・画面の遷移的にはどんな感じの挙動を取っているでしょうか?
(例:アプリ起動するとアプリのメイン画面が表示される→その上にログイン子画面がモーダルで表示される→ログイン処理が終わると子画面が閉じてメイン画面が操作可能になる)

この手の動作は結構アプリ側のプログラムの作り込み方で対処法が変わってくると思いますので、
ここから考えていければと思います。

1 Like

すごい起動に時間がかかるのですか?

状況が良くわからないのですが、「要素の有無を検出」とか「並列」なんかのアクティビティを見てみても幸せになれるかもしれません。

rfu様
ご指導ありがとうございます。

富士通製のPDMateというソフトとUiPathとの連携です。
・正常終了しています(メイン画面とログイン子画面が表示されています。)
・ログイン画面は、ログイン名とパスワードを各々2つのテキストボックスに入力します。
(ログイン画面を下に貼り付けました。)
・画面の遷移は、仰る通り(まさに例で示していただいた遷移)です。

どのアクティビティを組み合わせて達成できるのか、悩んでおりました。

質問

Chuki様
ご指導ありがとうございます。

起動に時間はかかりません。
1秒も掛かりません。
コンマ何秒の世界です。
アプリ本画面、ログイン子画面共にexcelファイルより早いです。

「並列」は使ったことがないのですが、「アプリ本画面、ログイン子画面」といった2つの画面
が起動時に出るアプリで使うものなのでしょうか?

なるほど。
そんな感じですと、例えば @_Chuki 様の言っているように「要素の有無を検出(Element Exists)」 を使って・・。

1.OpenApplicationでアプリを起動する。この時、出力のアプリケーションウィンドウを変数に設定しておく。(多分メイン画面のセレクターが変数に設定される・・んじゃないかな)
2.一旦OpenApplicationのスコープから外に出て、ElementExistsを使って、
  例えばログインウィンドウの起動ボタンなんかを要素に指定して、ログインウィンドウが表示されたかをチェックする。
3.表示されている場合、AttachWindowでログインウィンドウにセレクターでアタッチしてログイン処理を行う。
4.表示されない場合、またはログイン処理が完了した場合、AttachWindowで1.で設定した変数でメイン画面にアタッチして、メイン画面での後続処理を開始する。

みたいなロジックでどうでしょうか。
(OpenApplicationの出力にメイン画面が設定されてくれることが前提ですが)

1 Like

rfu様

ご指導ありがとうございます。
とてもイメージがわきました。

OpenApplicationスコープから外に出るという発想ができないでおりました。
同じアプリの処理は何が何でもOpenApplicationスコープのDO文内で処理しなければならないと
勝手に思い込んでおりました(恥)

以降、もっと柔軟にロボット作りができそうです。
かなりスキルアップした気持ちです。

2 Likes

参考になれば幸いです。

OpenApplicationの出力にログイン画面の情報が格納されてしまっているようでしたら、
4.のAttachWindowのやりかたで、変数を使って元のウィンドウに戻る方法が使えませんので、
代わりにメイン画面のセレクターを指定してアタッチしてみてください。

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.