0

<主題>

WebDriverで動作しているEdgeで、同じブラウザ名で新しいタブを意図的に開きたい。

エミュレーションで「Ctrl+T」を入力する以外に、何か方法は無いでしょうか。

いつもお世話になっております。

現在、あるクラウドストレージからファイルをダウンロードするシナリオを作成しています。

ブラウザはEdgeを使用するのですが、セキュリティポリシーによって一部の設定がロックされており、

ファイルのダウンロード時は必ず保存場所を聞かれるようになっています。

画像① Edgeのダウンロード設定

画像② ダウンロードウィンドウの様子

このダウンロードウィンドウですが、どうもUIオートメーションではコントロールが取得できないようなので

過去の投稿を参考にedge://downloads/all から名前を付けて保存をクリックするようにしようと考えています。

参考) https://winactor.com/?p=40064

ここで問題があり、ページ上でダウンロードボタンをクリックするとJavaScriptか何かが動いてファイルのダウンロード処理が始まるのですが若干のタイムラグがあります。サーバor回線が重い時だと時間が伸びることもあります。

またファイル自体のURLは分からないため、HTTPファイルダウンロードは使用できません。

ダウンロード準備が整う前、つまりダウンロードウィンドウが表示される前にedge://downloads/allを開いてもファイルが表示されません。

(ダウンロードの開始処理が済んでないっぽい?)

これに対し、ウィンドウハンドル取得やウィンドウ状態待機などでダウンロードウィンドウの表示を待つのもアリなんですが、

ダウンロードボタンをクリックした後、ときどきウィンドウの左下に表示されるステータスバーも「空のウィンドウタイトル」らしく

ウィンドウ識別による判定も難しい状況です。

画像③ ステータスバー?の様子

実行機の画面解像度に依存したくないため画像マッチングは使いたくありません。

ここで主題の話になるのですが、1つ目のタブでクラウドストレージのページを開いておき、2つ目のタブでedge://downloads/allを開けばダウンロード準備の完了を検知できそうだということが分かりました。

(別のブラウザ名を付けてウィンドウを2つに分けてしまうとプロファイルが別になるためダメっぽいです)

長々と背景を書きましたが、対応方法を教えてください。

この質問は解決済みのためクローズされています。
茄子天 新しいコメントを投稿
回答とコメントは、会員登録(無料)で閲覧できるようになります。