ファイルダウンロード
Webテストでファイルダウンロードを自動化する際は、異なるブラウザ間で一貫した処理を行い、信頼性の高いテスト実行を確保することが不可欠です。
ここでは、ファイルダウンロードのベストプラクティスを提供し、Google Chrome、Mozilla Firefox、Microsoft Edgeのダウンロードディレクトリの設定方法を説明します。
ダウンロードパス
テストスクリプトでダウンロードパスをハードコーディングすると、メンテナンスの問題や移植性の問題が発生する可能性があります。ダウンロードディレクトリには相対パスを使用して、異なる環境間での移植性と互換性を確保しましょう。
// 👎
// ハードコードされたダウンロードパス
const downloadPath = '/path/to/downloads';
// 👍
// 相対ダウンロードパス
const downloadPath = path.join(__dirname, 'downloads');
待機戦略
適切な待機戦略を実装しないと、特にダウンロード完了時に競合状態や信頼性の低いテストにつながる可能性があります。テストステップ間の同期を確保するために、ファイルダウンロードの完了を待つ明示的な待機戦略を実装しましょう。
// 👎
// ダウンロード完了の明示的な待機なし
await browser.pause(5000);
// 👍
// ファイルダウンロード完了を待機
await waitUntil(async ()=> await fs.existsSync(downloadPath), 5000);
ダウンロードディレクトリの設定
Google Chrome、Mozilla Firefox、Microsoft Edgeのファイルダウンロード動作をオーバーライドするには、WebDriverIOのケーパビリティでダウンロードディレクトリを指定します:
- Chrome
- Firefox
- Microsoft Edge