WebDriver を使用して Web サイトを自動化していますが、ファイルのダウンロードのニーズは、グーグルで見つけたものとは少し異なります。
注文を作成する Web サイトがあります。「注文する」ボタンをクリックすると、印刷注文ページにリダイレクトされます。私にとっての「便利さ」として、このページは、本体のオンロードで自動的にダウンロード操作を開始します。つまり、[注文する] ボタンをクリックすると、新しいページに移動し、すぐにファイル ダウンロード ダイアログが表示され、ダウンロードできるようになります。生成された pdf が表示され、ブラウザがブロックされます。
私が見つけた/考えた解決策と、それらを使用できなかった理由は次のとおりです。
ファイルをサイレント モードでダウンロードするように Firefox/Chrome プロファイルを構成します。ダウンロードにかかる時間を計測する必要があるため、これを使用できません。
ダウンロードを防止する関数で window.open をオーバーライドし、URL を取得して wget でダウンロードできるようにします。次のページの onload 関数からファイルのダウンロードが開始されるため、このページで実行した javascript が失われるため、これを使用することはできません。
onload 関数をキャンセルするか、onload 関数の前にコードを実行してみてください。webdriver でこれを行う方法が見つかりません。
wget で印刷ページをダウンロードし、html を変更して onload ハンドラを変更し、変更した html をセレンに戻します。<head> および <body> タグと URL を含むページ全体を置き換える方法が見つかりません。
残念ながら、私は QA を担当しており、開発に関してそのような影響力を持っていないため、この Web サイトのソース コードを変更することはできません。このファイルを自動的にダウンロードして時間を計る方法について誰かアイデアはありますか?
ありがとう。