【WebDriver】Edgeダウンロードメニュー表示時のウインドウクローズについて
Edgeが120になりましたが、皆さんWebDriverのバージョンアップされましたでしょうか
自分は人柱精神でガンガンアップデートするのですが
119の時に発生していた現象についてたぶん今回も発生しているのかなと思い
判明点を記述しておきます。
なお、自分は119の時には不具合の動作確認を行っておりません。
120の時点で調査しております。
まず、根底としてダウンロードの設定で「ダウンロードの開始時にダウンロード メニューを表示」
を非表示にしている方は不具合は発生致しません。
(自分はこの設定で運用しているので119の時点でも不具合発生せず)
不具合発生手順
WebDriverでブラウザ起動>ページ表示(ここをウインドウAとします)
この時点のウインドウ数はもちろん1
ファイルのダウンロードを実行する。ダウンロードメニューが表示されます。
この時点のウインドウ数は2(ここ重要)
現在のWebDriverの制御位置はウインドウAです
この状態でウインドウクローズするとエラーになります。
解消方法
ダウンロードメニュー非表示が一番簡単なので自分は非表示設定をお勧めしますが
表示したい人のために
ウインドウ数が2の時にAでクローズは駄目なので
ダウンロードメニュー(Bとします)を閉じてウインドウ数1の状態にしてAをクローズするのが重要です。
Bの閉じ方は、次のウインドウへ移動でBに制御を移して
ウインドウクローズと行きたいところですが、これは動作しません。
代わりにAに移動することによってアクティブウインドウが変わることによってBがクローズされます
この状態でウインドウ数は1なのでAをクローズしても大丈夫
ここまで長いと思われるので結局どのように書けば良いのよ?ということで
ブラウザ起動
ページ表示(A表示)
ウインドウハンドル取得(Aのウインドウハンドルを取得しておく)
ファイルのダウンロード
次のウインドウへ移動(Bへ移動)
任意のウインドウへ移動(AのウインドウハンドルでAへ戻る)
ウインドウクローズ
余談
Bのhtmlを取得してみるとわかりますが、ダウンロードメニューはEdgeのダイアログ等ではなく
通常のhtmlです。
今後もこの仕様のままのような気がしますね