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.
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.
Ingat dua hal berikut saat mengunggah file di WebDriver
- Tidak perlu simulasi mengklik tombol “Browse”. WebDriver secara otomatis memasukkan path file ke kotak teks pemilihan file di elemen
- Saat mengatur jalur file di file Anda Java IDE, gunakan karakter escape yang tepat untuk garis miring ke belakang.
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.
Langkah 2) Buka Run dengan menekan tombol Windows + “R” ; ketik “cmd & klik ok
Ketik perintah “cd /” untuk berpindah ke direktori root
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
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
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.
Langkah 1) Impor paket “java.io.IOException” karena kita harus menangkap IOException nanti di Langkah 4.
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”.
Langkah 3) Atur sintaks untuk wget menggunakan perintah berikut.
Langkah 4) Mulailah proses pengunduhan dengan memanggil wget dari kode WebDriver kami.
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.
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.