StudioX2024.10.4を使用し始めたばかりの新規ユーザーです。
ブラウザchromeを起動し、予めExcelで作っておいたリストの内容を一つひとつ取り出しながら製品コードで検索し、結果のページにあるリンクをクリックすることで製品のPDFをダウンロードしたいと考えています。
同じタブのまま進めば問題ないと思うのですが、検索結果を表示させる部分で別タブが立ち上がってしまい、ダウンロードリンクをクリックできない状態になっています。おそらくですが、元のタブに対してクリックの対象を探しているからだと考えています。
過去の質問を検索してみると”ブラウザーをアタッチ”アクティビティがあったようですが、現バージョンにはなく、設定方法が分からず困っています。
何か対処法はございますでしょうか?
基本的にはアプリケーションブラウザを使用アクティビティで可能です。
OpenプロパティをNeverにすることにより、新規にURLを開くことは無くアタッチモードとして動作しますので、まずはこちらをお試しください。
ご返信ありがとうございます。
”アプリケーション/ブラウザーを使用”アクティビティにてプロパティ>オプション>オープン動作で”なし(Never)”を選択して試してみましたが、エラーは解消しませんでした。
以下のようなメッセージが出る状態です。
このアクションのユーザー インターフェイス (UI) 要素が見つかりませんでした。
考えられる解決策
• 実行時に、アプリケーションが開いており、UI 要素が画面上で表示されているようにする
• UI アクティビティのターゲットを編集し、検証機能を使用して問題をデバッグする
• プロパティが変更されている可能性があるため、必要に応じて要素を再指定する
• アクションの実行前に [ステートを確認] アクティビティを使用してアプリケーションのステートを確認する
• [実行前の待機時間] の値を増やし、アプリケーションが完全にレンダリングを完了し応答可能になるまで待機させる
Neverに設定しても、HP側の仕様のせいか新しいタブが立ち上がってきてしまいます。
その立ち上がった新しいタブに対して、アプリケーション・ブラウザを使用アクティビティを使用していますでしょうか?そのアクティビティのOpenプロパティをNeverにするという意図になります。
ご返信ありがとうございます。
クリックして新規タブが立ち上がってきた後に”アプリケーション/ブラウザーを使用”アクティビティを挿入し、Never設定をするということで承知しました。
その際、自動化するアプリケーションを指定に入力しないと『!』表記が消えないので、繰り返し行う作業の最初の検索で起動したタブを対象に選択したところ、その製品専用のURLが入力されました。製品ID毎に立ち上がるタブのURLが異なるのですが、大丈夫でしょうか?
新規にブラウザを起動しませんので、その部分は無視して大丈夫と思います。
ただしセレクター情報にURLが埋め込まれていると問題になるので、もし埋め込まれていた場合は必要な部分(固定部分)を残して変動部分はワイルドカードを使う等の処置が必要かもしれません。
ワイルドカードを使用してみましたが、状況変わらずでした。
実施したいことをまとめますと、以下の通りです。
①URL固定で新規にChromeを起動する(ページA)
②別途用意したExcelファイルに記載された製品IDを入れて検索する(ページAのまま結果一覧が表示される)
③”詳細”ボタンをクリックするとページBタブが立ち上がる
④ページBにあるボタンをクリックすると、製品の詳細が記載されたPDFのダウンロード確認画面(名前をつけて保存)が出るので、特定のフォルダに名前そのままで保存する
②~④をExcelの行の分だけ繰り返す
今アクティビティを配置しているのは以下の流れです。
1.アプリケーション/ブラウザーを使用:ブラウザーURLでページAを指定
2.”ブラウザーを使用”アクティビティの枠の中に”Excelファイルを使用”アクティビティを設置:予め情報をまとめたExcelファイルを指定
3.”Excelファイルを使用”アクティビティの枠の中に、”繰り返し(Excelの各行)”を設置。続いて文字を入力、”クリック”アクティビティを設置して、ページBが起動するところまでは正常に機能していることを確認
4.引き続き”繰り返し(Excelの各行)”アクティビティの枠の中に”アプリケーション/ブラウザーを使用”アクティビティを設置し、オプションからオープン動作としてNeverを選択。ブラウザーのURLは共通部分までは表記し、可変部分はワイルドカード*で置換。
5.その後、”ダウンロードを待機”アクティビティを設置し、その枠の中にダウンロードを開始するアクティビティとして”クリック”を設置、最後にダウンロード確認画面の保存をクリックするアクティビティを設置。
使っているアクティビティや設定、設置場所等で問題のある箇所はございますでしょうか?
いま例外が出ているのはどの番号のどのアクティビティでしょうか?
少なくとも
ここは違います。URLプロパティではなくウインドウセレクターの中身を確認して、動的にすべき箇所があれば、そのようにしてください
ご返信ありがとうございます。
ウインドウセレクターとはプロパティの入力>統合アプリケーションターゲット>セレクター部分で合っておりますでしょうか?ここのtitleの値が可変だと思われましたので、ワイルドカードで設定しました。
今エラーが起きているのは、5の
”ダウンロードを待機”アクティビティを設置し、その枠の中にダウンロードを開始するアクティビティとして”クリック”を設置
したところです。クリックすべき対象が見つからないというエラーが出ています。新規に立ち上がったタブを認識していないのではないかと思った理由もここにあります。
その可能性は高いと思います。
以下2点確認ください。
1.出現したタブに対するアプリケーションブラウザ使用アクティビティのウインドウアタッチモードをSingleWindowにする
2.クリックアクティビティが正しく対象となるブラウザ使用アクティビティを指定しているか確認する。
ご返信ありがとうございます。
ブラウザマークを左クリックして確認したところ、元のページにチェックが入っていたので新しいタブの方に設定を変更してみましたが、結果としては変わらずでした。
対象を新規タブの方に設定した後、横三本マークの”クリックしてオプションメニューを開きます”から”画面上でターゲットを指定”で改めて設定しようとして新規タブを選択しましたが、画面上ではなぜか元のページが表示されてしまい新規タブのターゲット先を選択することが出来ませんでした。
この挙動も正常に設定出来ていないことを示唆しているのでしょうか・・・。
ブラウザを使用アクティビティのウインドウセレクターが現状と合致していないあるいはユニークに特定できていないように思えます。具体的な情報がないので何ともコメントしがたいですが、それぞれのタブで固有の情報があれば、それをWindowSelectorに含めるようにした方が良いかと思います。
あとあまり影響ないかもですが、元のブラウザを使用アクティビティのウインドウアタッチモードもSingle Windowにして改善するかは確認しても良いかもしれません。
元のブラウザを使用アクティビティのウィンドウアタッチモードもSingle Windowに変更済みです。
タブ情報ですが、元のタブ名は「検索 | 社名」で、新規タブ名は「製品名 製品ID | 社名」という感じです。
社名部分は共通ですし、製品名 製品IDの部分は可変なのでWindowSelectorに含める部分がないです。
タブに固有の情報とは、タブ名だけではなくページ全体も指しておりますでしょうか?
質問をする前に、”アクティブウィンドウを取得”アクティビティも試してみたのですが、改善が出来ませんでした。設定方法が間違っていたのかも知れませんが、適切に使えば期待できますでしょうか?
こちらはWindowが返るので、ブラウザのタブはハンドリングできないと思います。
タブ名称=titleの値かと思いますが、これで差別化できない場合で、複数のtitleとマッチするタブがあり、他に特定する属性がない場合は、原則として一番上のタブが選択されるはずです。
設定時に当該タブを指定できない事象は良くわからないですね。今一度新規にブラウザ使用アクティビティは配置しなおして改善するか確認した方が良いかもしれません。
色々と相談に乗っていただきありがとうございました。
設定を触っているうちに、色んな箇所の設定まで変更してしまったのかも知れません。
新たに作り直してみることにします。