を使用してファイルをアップロードおよびダウンロードする方法 Selenium
Seleniumでファイルをアップロードする
WebDriver でのファイルのアップロードは、ファイル選択入力フィールドで sendKeys() メソッドを使用して、アップロードするファイルへのパスを入力するだけで行われます。
このチュートリアルでは、ファイルのアップロードとダウンロードを処理する方法を学びます。
ファイルをアップロードする方法 Selenium
このセクションでは、 https://demo.guru99.com/test/upload/ テストアプリケーションとして。 このサイトでは、訪問者はサインアップせずにファイルを簡単にアップロードできます。

ファイル「C:\newhtml.html」をアップロードするとします。 WebDriver コードは以下のようになります。
package newproject; import org.openqa.selenium.*; import org.openqa.selenium.firefox.FirefoxDriver; public class PG9 { public static void main(String[] args) { System.setProperty("webdriver.gecko.driver","C:\\geckodriver.exe"); String baseUrl = "https://demo.guru99.com/test/upload/"; WebDriver driver = new FirefoxDriver(); driver.get(baseUrl); WebElement uploadElement = driver.findElement(By.id("uploadfile_0")); // enter the file path onto the file-selection input field uploadElement.sendKeys("C:\\newhtml.html"); // check the "I accept the terms of service" check box driver.findElement(By.id("terms")).click(); // click the "UploadFile" button driver.findElement(By.name("send")).click(); } }
このスクリプトを実行すると、ファイルを正常にアップロードできるようになり、次のようなメッセージが表示されるはずです。
WebDriverでファイルをアップロードするときは、次の2つの点に注意してください。
- 「参照」ボタンのクリックをシミュレートする必要はありません。WebDriverは、ファイルパスをファイル選択テキストボックスに自動的に入力します。要素
- ファイルパスを設定するときは Java IDE では、バックスラッシュに適切なエスケープ文字を使用します。
ファイルをダウンロードする方法 Selenium ウェブドライバー
WebDriverにはダウンロードダイアログボックスにアクセスする機能がありません ダウンロード リンクまたはボタンをクリックすると、ブラウザによってダイアログ ボックスが表示されます。ただし、「wget」と呼ばれる別のプログラムを使用すると、これらのダイアログ ボックスをバイパスできます。
ウィゲットとは何ですか?
Wget は、ダウンロードを自動化するために使用される小さくて使いやすいコマンドライン プログラムです。。 基本的に、WebDriver スクリプトから Wget にアクセスしてダウンロード プロセスを実行します。
Wget のセットアップ
ステップ1) C ドライブに新しいフォルダーを作成し、「Wget」という名前を付けます。
wget.exeをダウンロード ここから 上記の手順で作成した Wget フォルダーに配置します。
ステップ2) Windowsキー+「R」を押して実行を開き、「cmd」と入力してOKをクリックします。
コマンド「cd /」を入力してルートディレクトリに移動します
ステップ3) コマンドを入力して、指定された設定が機能しているかどうかを確認します
cmd /c C:\\Wget\\wget.exe -P C: --no-check-certificate https://demo.guru99.com/selenium/msgr11us.exe
Cドライブへの書き込みに問題があるようです。
ステップ4) コードを実行する前に、コマンドラインで wget エラーをデバッグする必要があります。 Selenium ウェブドライバー。これらのエラーは次の期間に持続します Eclipse また、エラー メッセージはあまり有益ではありません。まずコマンドラインを使用して wget を動作させるのが最善です。コマンドラインで動作する場合は間違いなく動作します Eclipse.
この例では、ステップ 3 に示すように、C ドライブへの書き込みに問題があります。 ダウンロード場所をDドライブに変更して結果を確認してみましょう。
cmd /c C:\\Wget\\wget.exe -P D: --no-check-certificate https://demo.guru99.com/selenium/msgr11us.exe
Messenger 正常にダウンロードされました。
次に進む前に、ダウンロードしたファイルを削除することを忘れないでください
WebDriver と Wget の使用
次の例では、WebDriverとwgetを使用して、Yahooという人気のチャットソフトウェアをダウンロードします。 MessengerベースURLは https://demo.guru99.com/test/yahoo.html.
ステップ1) 後でステップ 4 で IOException をキャッチする必要があるため、「java.io.IOException」パッケージをインポートします。
ステップ2) getAttribute() を使用してダウンロード リンクの「href」値を取得し、それを文字列変数として保存します。 この場合、変数に「sourceLocation」という名前を付けました。
ステップ3) 次のコマンドを使用して、wget の構文を設定します。
ステップ4) WebDriver コードから wget を呼び出して、ダウンロード プロセスを開始します。
まとめると、WebDriver コードは以下のようになります。
package newproject; import java.io.IOException; import org.openqa.selenium.*; import org.openqa.selenium.firefox.FirefoxDriver; public class PG8 { public static void main(String[] args) { System.setProperty("webdriver.gecko.driver","C:\\geckodriver.exe"); String baseUrl = "https://demo.guru99.com/test/yahoo.html"; WebDriver driver = new FirefoxDriver(); driver.get(baseUrl); WebElement downloadButton = driver.findElement(By .id("messenger-download")); String sourceLocation = downloadButton.getAttribute("href"); String wget_command = "cmd /c C:\\Wget\\wget.exe -P D: --no-check-certificate " + sourceLocation; try { Process exec = Runtime.getRuntime().exec(wget_command); int exitVal = exec.waitFor(); System.out.println("Exit value: " + exitVal); } catch (InterruptedException | IOException ex) { System.out.println(ex.toString()); } driver.close(); } }
このコードを実行した後、DドライブをチェックしてYahoo! Messenger インストーラーが正常にダウンロードされました。
製品概要
- WebDriver でのファイルのアップロードは、ファイル選択入力フィールドで sendKeys() メソッドを使用して、アップロードするファイルへのパスを入力するだけで行われます。
- WebDriver だけではファイルのダウンロードを自動化できません。
- WebDriver を使用してファイルをダウンロードする最も簡単な方法は、Wget を使用することです。