WEBアプリケーションでのUipathの利用を考えています。
以下の処理を行いたいのですが、うまくいきません。
良い方法がありましたらご教示いただけますでしょうか。
WEBアプリケーション上で特定のボタンを押下すると、別のウィンドウが開きます。そのウィンドウ上で処理を行うためにアプリケーション/ブラウザを使用アクティビティで指定したいのですが、URLは一部が毎回異なるため、うまく開いてくれません。
どのような設定であれば開いてくれるようになりますでしょうか。
よろしくお願いします。
WEBアプリケーションでのUipathの利用を考えています。
以下の処理を行いたいのですが、うまくいきません。
良い方法がありましたらご教示いただけますでしょうか。
WEBアプリケーション上で特定のボタンを押下すると、別のウィンドウが開きます。そのウィンドウ上で処理を行うためにアプリケーション/ブラウザを使用アクティビティで指定したいのですが、URLは一部が毎回異なるため、うまく開いてくれません。
どのような設定であれば開いてくれるようになりますでしょうか。
よろしくお願いします。
既に開いているウインドウにアタッチするのであれば、セレクターでURLに関する属性を削除するか、変動する部分をワイルドカードにすると動作すると思います。
「アプリケーション/ブラウザを使用」アクティビティでは、ブラウザーのURLは必須と表示されますが、空文字でも問題ありません。
その場合は、統合ターゲットのセレクターでウィンドウ(またはダイアログ)のタイトルを適切に設定してください。
たとえば、"<html app='chrome.exe' title='login' />" のように指定すれば、URLが毎回異なる場合でも、「login」というタイトルを持つChromeブラウザを対象として認識できます。
ご回答いただきましてありがとうございます。
URLとセレクターでワイルドカードを使用しているのですが、なかなかうまく確認できていないみたいです。。
ご回答ありがとうございます。
URLを指定せず、セレクターのみで設定してみましたが、こちらもうまく認識してくれてないみたいでした。。
現在どのようなアクティビティを使用していて、どのアクティビティでどのようなエラーがでていますでしょうか?
あるいは別に新しいウインドウが開いてしまっていますか?そうであれば、まずはオープン動作をNeverにしてみてはと思います。
ご回答いただきましてありがとうございます。
以下のような流れでフローを組んでいます。
最初のクリックで新しいウィンドウが開かれ、アプリケーション/ブラウザーを使用で新しく開かれたウィンドウを指定し、そのウィンドウ上でクリック操作を設定しています。
オープン動作ではNeverを指定しており、別の新しいウィンドウは開かれていないものです。
【フロー】
クリック
>アプリケーション/ブラウザーを使用
>クリック
【エラー内容】
22.10.4+Branch.support-v22.10.Sha.b4be88e3b45fb05c4bcd71885c763d4f2095f959
ソース: クリック ‘グループ’
メッセージ: このアクションのユーザー インターフェイス (UI) 要素が見つかりませんでした。
考えられる解決策
• 実行時に、アプリケーションが開いており、UI 要素が画面上で表示されているようにする
• UI アクティビティのターゲットを編集し、検証機能を使用して問題をデバッグする
• プロパティが変更されている可能性があるため、必要に応じて要素を再指定する
• アクションの実行前に [ステートを確認] アクティビティを使用してアプリケーションのステートを確認する
• [実行前の待機時間] の値を増やし、アプリケーションが完全にレンダリングを完了し応答可能になるまで待機させる
例外の型: UiPath.UIAutomationNext.Exceptions.NodeNotFoundException
UiPath.UIAutomationNext.Exceptions.NodeNotFoundException: このアクションのユーザー インターフェイス (UI) 要素が見つかりませんでした。
考えられる解決策
• 実行時に、アプリケーションが開いており、UI 要素が画面上で表示されているようにする
• UI アクティビティのターゲットを編集し、検証機能を使用して問題をデバッグする
• プロパティが変更されている可能性があるため、必要に応じて要素を再指定する
• アクションの実行前に [ステートを確認] アクティビティを使用してアプリケーションのステートを確認する
• [実行前の待機時間] の値を増やし、アプリケーションが完全にレンダリングを完了し応答可能になるまで待機させる at UiPath.UIAutomationNext.Activities.TargetCommonLogic.GetSearchResultAsync(IRuntimeContext runtimeContext, ITargetAnchorable target, CancellationToken token)
at UiPath.UIAutomationNext.Activities.NClick.UiPath.UIAutomationNext.Activities.IVerifyExecutionActivity.ExecuteAsync(IRuntimeContext context, IActivityData data, CancellationToken cancellationToken)
at UiPath.UIAutomationNext.Activities.Services.VerifyExecutionService.ExecuteWithVerifyAsync[T](IVerifyExecutionActivity activity, IVerifyExecutionRuntimeContext verifyContext, IRuntimeContext context, T data, CancellationToken token)
at UiPath.UIAutomationNext.Activities.NClick.ExecuteAsync(AsyncCodeActivityContext context, CancellationToken cancellationToken)
at UiPath.Shared.Activities.AsyncTaskCodeActivityImplementation.EndExecute(AsyncCodeActivityContext context, IAsyncResult result)
at UiPath.Shared.Activities.AsyncTaskCodeActivity.EndExecute(AsyncCodeActivityContext context, IAsyncResult result)
at UiPath.Shared.Activities.ContinuableAsyncCodeActivity.EndExecute(AsyncCodeActivityContext context, IAsyncResult result)
at System.Activities.AsyncCodeActivity.System.Activities.IAsyncCodeActivity.FinishExecution(AsyncCodeActivityContext context, IAsyncResult result)
at System.Activities.AsyncCodeActivity.CompleteAsyncCodeActivityData.CompleteAsyncCodeActivityWorkItem.Execute(ActivityExecutor executor, BookmarkManager bookmarkManager)
— End of stack trace from previous location —
at UiPath.UIAutomationNext.Activities.NApplicationCard.OnFault(NativeActivityFaultContext faultContext, Exception propagatedException, ActivityInstance propagatedFrom)
at System.Activities.Runtime.FaultCallbackWrapper.Invoke(NativeActivityFaultContext faultContext, Exception propagatedException, ActivityInstance propagatedFrom)
at System.Activities.Runtime.FaultCallbackWrapper.FaultWorkItem.Execute(ActivityExecutor executor, BookmarkManager bookmarkManager)
— End of stack trace from previous location —
at UiPath.UIAutomationNext.Activities.NApplicationCard.OnFault(NativeActivityFaultContext faultContext, Exception propagatedException, ActivityInstance propagatedFrom)
at System.Activities.Runtime.FaultCallbackWrapper.Invoke(NativeActivityFaultContext faultContext, Exception propagatedException, ActivityInstance propagatedFrom)
at System.Activities.Runtime.FaultCallbackWrapper.FaultWorkItem.Execute(ActivityExecutor executor, BookmarkManager bookmarkManager)
よろしくお願いいたします。
ああ、確かにおっしゃる通りです。
エラー内容の推奨に従い、「クリック」の後と「アプリケーション/ブラウザーを使用」の直前に待機アクティビティを挿入した方がよろしいかと思います。
クリック直後に次のアクティビティへ進むと、ブラウザーのロードが完了しておらず、ターゲットが見つからない可能性があります。
[ステートを確認] アクティビティの中にターゲットが表示されるまで待つ機能があるため、 [ステートを確認] アクティビティを使っていないならば、使うことをお勧めします。つまりクリックボタンをターゲットにして、クリックボタンが表示されるまでUiPathロボットを待たせます。
ご回答いただきましてありがとうございます。
ご教示いただいたように[ステートを確認]アクティビティを使用しましたが、やはり見つけてくれないみたいでした。。
セレクターエディターまたはUI Exploreで「クリック」アクティビティのNApplication CardのネイティブウインドウHTMLWindowNameのチェックボックスをOFFに設定する(ウインドウセレクターのプロパティをOFFにする)とどうですか?以前に2回目の繰り返しで止まった障害で、これをOFFにして繰り返しが2回目以降も動いたことがあります。
こんにちは
クリックアクティビティのウィンドウセレクタープロパティはどのようになっていますか?
もしここに変動する項目があるとうまく動作しないので、その属性を削除するか、ワイルドカードを使用してください。
また原因の切り分けのために、リボンメニューの要素を強調表示を有効にして、新しいウィンドウが開いた後のブラウザを使用アクティビティが、期待する場所をアタッチしているか、確認してみてはと思います。
待機アクティビティを使っても同じですか?
クリックアクティビティのウィンドウセレクターで変動する部分をワイルドカードに指定していないことが原因でした!!
そこを変えれば問題なく動きました!皆様、ご協力くださりましてありがとうございます!!