ダウンロードは、使用しているブラウザによっては面倒な作業になることがあります。幸運にも、あなたはあまりにも多くのトラブルを避けるべきであるChromeを使用しています。
まず、ファイルのダウンロードを開始するボタンを探す必要があります。
driver.FindElement(<locator here>).click()
ダウンロードが開始されているはずです。ただし、ダウンロードが完了するまでに少し時間がかかることがあります。したがって、新しいファイル(またはファイル名がわかっている場合は特定のファイル)のダウンロードフォルダをポーリングする必要があります。ドライバの作成時にダウンロードフォルダを指定することができます。
var options = new ChromeOptionsWithPrefs();
options.prefs = new Dictionary<string, object>
{
{ "download.default_directory", "path/to/downloads/folder" }
};
RemoteWebDriver driver = new ChromeDriver("path/to/driver", options);
今、あなたは、あなたがダウンロードしたファイルのファイル名にこのファイル名を比較することができますループで
var directory = new DirectoryInfo("path/to/downloads/folder");
var myFile = directory.GetFiles()
.OrderByDescending(f => f.LastWriteTime)
.First();
を実行して、このフォルダ内の最新のファイルを見つけることができます。このループにタイムアウトを追加し、予想された時間内にダウンロードされない場合は、テストに失敗する可能性があります。
注:私は、コードの一部が完全に動作するではないかもしれないので、この言語に精通していないんだけど、それはあなたのアイデア
を与えるだろう、私はそれを実装しようとします、ありがとうございました。プログラムのダウンロードポップアップを受け入れる方法を知っていますか? chromeOptions.AddUserProfilePreference( "disable-popup-blocking"、 "true");私のために働いていません。 –
@ITresearcherブラウザによって異なります。 Firefoxでは無効にすることができます。 Chromeでは、下部のバーだけが表示されます。セレンを使用してこれを処理することはできませんので、AutoITのようなものを使用して調べる必要があります。私はそれを使用したことがないので、これでさらにあなたを助けることはできません。 – RemcoW