
私はSeleniumと関連ドライバーを使用してChrome、Edge、Firefoxで動作する自動テストを書こうとしています。しかし、Firefoxでテストを実行すると、新しいブラウザウィンドウが目的のページを開き、その後Bitwarden ページ別のタブで。この別のタブの開きは、テストの実行方法に影響するようです。開かないようにする方法を知っている人はいますか?
私が試したこと:
- スタンドアロン ブラウザーから拡張機能をアンインストールしましたが、自動化されたインスタンスではいずれにしても再び表示されます。IT 部門によると、拡張機能がインストールされたままになるように何らかのシステムを作成したとのことです。このタブを開かないようにするにはどうすればよいですか?
- ローカルに保存された両方のプロファイルから addons.json ファイルをクリアしました。私が避けようとしていること:
- テストを実行するたびにこのタブを終了するようにします。
- レジストリをいじっています。できれば IT 部門を怒らせないようにしたいです。
これを修正する方法を知っている人はいますか?
答え1
解決策にたどり着きました。ブラウザ ドライバーを開いてテストするポイントの間に、現在フォーカスされているタブを正しいタブに切り替える次のコード (Python) を配置しました。
windows = self.driver.window_handles
if (len(windows) > 1):
self.driver.switch_to.window(windows[0])
タブのリストの長さが 1 より大きい場合、Bitwarden タブが開き、テストするターゲット タブである最初のタブに切り替えます。問題の根本は解決されませんが (簡単な解決策ではありません)、フォーカスが正しいタブに戻されるため、Firefox でタブ関連のエラーが発生しなくなります。