Cara Mengunggah & Mengunduh File menggunakan Selenium Driver web

Unggah file di Selenium

Pengunggahan file di WebDriver dilakukan hanya dengan menggunakan metode sendKeys() pada kolom input pemilihan file untuk memasukkan path ke file yang akan diunggah.

Dalam tutorial ini, kita akan mempelajari Cara menangani upload dan download file.

Cara Mengunggah File ke Selenium

Untuk bagian ini, kita akan menggunakan https://demo.guru99.com/test/upload/ sebagai aplikasi pengujian kami. Situs ini dengan mudah mengizinkan pengunjung mana pun untuk mengunggah file tanpa mengharuskan mereka mendaftar.

Unggah File ke dalam Selenium
Menangani popup unggahan file di Selenium Driver web

Katakanlah kita ingin mengunggah file “C:\newhtml.html”. Kode WebDriver kita harus seperti yang ditunjukkan di bawah ini.

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();
        }
}

Setelah menjalankan skrip ini, Anda seharusnya berhasil mengunggah file dan Anda akan mendapatkan pesan seperti ini.

Unggah File ke dalam Selenium

Ingat dua hal berikut saat mengunggah file di WebDriver

  1. Tidak perlu simulasi mengklik tombol “Browse”. WebDriver secara otomatis memasukkan path file ke kotak teks pemilihan file di elemen
  2. Saat mengatur jalur file di file Anda Java IDE, gunakan karakter escape yang tepat untuk garis miring ke belakang.

Unggah File ke dalam Selenium

Cara Download File di Selenium Driver web

WebDriver tidak memiliki kemampuan untuk mengakses kotak dialog Unduh ditampilkan oleh browser saat Anda mengklik tautan atau tombol unduh. Namun, kita dapat melewati kotak dialog ini menggunakan program terpisah yang disebut “wget”.

Apa itu Wget?

Wget adalah program baris perintah kecil dan mudah digunakan yang digunakan untuk mengotomatiskan pengunduhan. Pada dasarnya, kami akan mengakses Wget dari skrip WebDriver kami untuk melakukan proses pengunduhan.

Menyiapkan Wget

Langkah 1) Di Drive C Anda, buat folder baru dan beri nama "Wget".

Unduh wget.exe dari sini dan Tempatkan di folder Wget yang Anda buat dari langkah di atas.

Menyiapkan Wget

Langkah 2) Buka Run dengan menekan tombol Windows + “R” ; ketik “cmd & klik ok

Menyiapkan Wget

Ketik perintah “cd /” untuk berpindah ke direktori root

Menyiapkan Wget

Langkah 3) Ketik perintah untuk memeriksa apakah pengaturan yang diberikan berfungsi

cmd /c C:\\Wget\\wget.exe -P C: --no-check-certificate https://demo.guru99.com/selenium/msgr11us.exe

Menyiapkan Wget

Sepertinya ada masalah saat menulis ke drive C.

Langkah 4) Anda perlu men-debug kesalahan wget di baris perintah sebelum Anda mengeksekusi kode menggunakan Selenium driver web. Kesalahan ini akan terus berlanjut Eclipse dan pesan kesalahannya tidak akan begitu informatif. Yang terbaik adalah membuat wget berfungsi terlebih dahulu menggunakan baris perintah. Jika berfungsi di baris perintah, pasti akan berfungsi Eclipse.

Dalam contoh kita, seperti yang ditunjukkan pada langkah 3, ada masalah saat menulis ke drive C. Mari kita ubah lokasi pengunduhan ke drive D dan periksa hasilnya.

cmd /c C:\\Wget\\wget.exe -P D: --no-check-certificate https://demo.guru99.com/selenium/msgr11us.exe

Menyiapkan Wget

Messenger berhasil diunduh.

Sebelum melanjutkan lebih jauh jangan lupa untuk menghapus file yang diunduh

Menggunakan WebDriver dan Wget

Dalam contoh berikut, kita akan menggunakan WebDriver dan wget untuk mengunduh perangkat lunak obrolan populer yang disebut Yahoo Messenger. URL dasar kami adalah https://demo.guru99.com/test/yahoo.html.

Menggunakan WebDriver dan Wget

Langkah 1) Impor paket “java.io.IOException” karena kita harus menangkap IOException nanti di Langkah 4.

Menggunakan WebDriver dan Wget

Langkah 2) Gunakan getAttribute() untuk mendapatkan nilai “href” dari tautan unduhan dan menyimpannya sebagai variabel String. Dalam hal ini, kami menamai variabel tersebut sebagai “sourceLocation”.

Menggunakan WebDriver dan Wget

Langkah 3) Atur sintaks untuk wget menggunakan perintah berikut.

Menggunakan WebDriver dan Wget

Langkah 4) Mulailah proses pengunduhan dengan memanggil wget dari kode WebDriver kami.

Menggunakan WebDriver dan Wget

Singkatnya, kode WebDriver Anda akan terlihat seperti di bawah ini.

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();
        }
        
}

Setelah menjalankan kode ini, periksa drive D Anda dan verifikasi bahwa Yahoo Messenger installer berhasil diunduh di sana.

Menggunakan WebDriver dan Wget

Kesimpulan

  • Pengunggahan file di WebDriver dilakukan hanya dengan menggunakan metode sendKeys() pada kolom input pemilihan file untuk memasukkan path ke file yang akan diunggah.
  • WebDriver tidak dapat mengotomatiskan pengunduhan file sendiri.
  • Cara termudah untuk mendownload file menggunakan WebDriver adalah dengan menggunakan Wget.