Cara Mengunggah & Mengunduh File menggunakan Selenium
โก Ringkasan Cerdas
Unggah dan Unduh file menggunakan Selenium Alur kerja WebDriver mengandalkan fungsi sendKeys() bawaan untuk kolom input, AutoIt atau Robot untuk dialog, dan perintah CDP di Selenium 4. Untuk menetapkan jalur unduhan yang aman selama menjalankan otomatisasi.

Mengunggah file di WebDriver dilakukan dengan mudah hanya dengan menggunakan metode sendKeys() pada kolom input pemilihan file untuk memasukkan jalur file yang akan diunggah. Dalam tutorial ini, Anda akan mempelajari cara menangani unggahan dan unduhan file menggunakan WebDriver. Selenium Pengemudi Web.
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.
mengimpor org.openqa.selenium.*;
mengimpor org.openqa.selenium.firefox.FirefoxPengemudi;
kelas umum PG9 {
kekosongan statis publik utama(String[] args) {
Sistem.setProperti(โwebdriver.gecko.driverโ,โC:\\geckodriver.exeโ);
String baseUrl = โhttps://demo.guru99.com/test/upload/โ;
webdriver pengemudi = yang baru FirefoxPengemudi();
driver.get(baseUrl);
Elemen Web uploadElement = driver.findElement(By.id(โuploadfile_0โ));
// Masukkan jalur file ke dalam kolom input pemilihan file
uploadElement.sendKeys(โC:\\newhtml.htmlโ);
// centang kotak centang โSaya menerima persyaratan layananโ
driver.findElement(By.id("ketentuan")).klik();
// klik tombol โUnggahBerkasโ
driver.findElement(By.name("mengirim")).klik();
}
}
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 mensimulasikan pengklikkan tombol "Browse". WebDriver secara otomatis memasukkan jalur file ke dalam kotak teks pemilihan file. elemen.
- Saat mengatur jalur file di file Anda Java IDE, gunakan karakter escape yang tepat untuk garis miring ke belakang.
Menangani Dialog Unggahan Tanpa Input dengan AutoIt
Saat halaman menggunakan tombol Jelajahi khusus alih-alih tombol bawaan. Jika elemen tersebut tidak berfungsi, sendKeys() tidak akan berfungsi. Dalam hal ini, Anda dapat memanggil skrip AutoIt dari Selenium Ketik jalur file ke dalam dialog sistem operasi dan tekan Enter.
Simpan skrip di bawah ini sebagai unggah.au3, kompilasikan ke upload.exelalu panggil dari Java setelah mengklik tombol Jelajahi.
WinWaitActive("Buka")
Mengirim(โC:\newhtml.htmlโ)
Mengirim("{MEMASUKI}")
Mulai dari Java, aktifkan helper setelah klik Jelajahi:
Runtime.getRuntime().exec(โC:\\AutoIt\\upload.exeโ);
Kelas java.awt.Robot adalah kelas murni-Java alternatif ketika AutoIt tidak tersedia, meskipun AutoIt lebih andal pada Windows karena menunggu dialog berdasarkan judul.
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 lalu letakkan di dalam folder Wget yang telah Anda buat pada langkah sebelumnya.
Langkah 2) Buka Run dengan menekan Windows Tekan tombol + โRโ; ketik โcmdโ dan klik OK.
Ketikkan perintah โcd /โ untuk masuk ke direktori root.
Langkah 3) Ketikkan perintah untuk memeriksa apakah pengaturan yang diberikan berfungsi.
Sepertinya ada masalah saat menulis ke drive C.
Langkah 4) Anda perlu men-debug kesalahan wget di baris perintah sebelum menjalankan kode menggunakan Selenium WebDriver. Kesalahan ini akan tetap ada. Eclipse dan pesan kesalahan tidak akan informatif. Sebaiknya coba jalankan wget terlebih dahulu menggunakan baris perintah. Jika berfungsi di baris perintah, pasti akan berfungsi di Eclipse.
Dalam contoh kita, seperti yang ditunjukkan pada Langkah 3, ada masalah saat menulis ke drive C. Mari kita ubah lokasi unduhan ke drive D dan periksa hasilnya.
Messenger berhasil diunduh.
Sebelum melanjutkan, jangan lupa untuk menghapus file yang telah diunduh.
Menggunakan WebDriver dan Wget
Dalam contoh berikut, kita akan menggunakan WebDriver dan wget untuk mengunduh perangkat lunak obrolan populer yang disebut Yahoo MessengerBasis kami URL seharusnya 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 simpan sebagai variabel String. Dalam hal ini, kita menamai variabel tersebut โ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.
mengimpor java.io.IOException;
mengimpor org.openqa.selenium.*;
mengimpor org.openqa.selenium.firefox.FirefoxPengemudi;
kelas umum PG8 {
kekosongan statis publik utama(String[] args) {
Sistem.setProperti(โwebdriver.gecko.driverโ,โC:\\geckodriver.exeโ);
String baseUrl = โhttps://demo.guru99.com/test/yahoo.htmlโ;
webdriver pengemudi = yang baru FirefoxPengemudi();
driver.get(baseUrl);
Elemen Web downloadButton = driver.findElement(By.id(โunduh messengerโ));
String sourceLocation = downloadButton.getAttribute(โhrefโ);
String perintah_wget = โcmd /c C:\\Wget\\wget.exe -PD: โno-check-certificateโ + sourceLocation;
mencoba {
Proses exec = Runtime.getRuntime().exec(wget_command);
int exitVal = exec.waitFor();
Sistem.keluar.println(โNilai keluar: โ + exitVal);
} menangkap (Pengecualian Terganggu | Pengecualian IO mantan) {
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.
Mengatur Jalur Unduhan Kustom dengan Selenium 4 CDP
Selenium 4 mengekspos Protokol Chrome DevTools, yang memungkinkan Anda mengontrol perilaku pengunduhan browser tanpa alat pihak ketiga. Cuplikan di bawah ini mengarahkan semua unduhan ke folder khusus dan melewati perintah Simpan Sebagai, sehingga file tersimpan di tempat yang diharapkan oleh pengujian.
Lokasi<String,obyek> params = yang baru HashMap<>();
params.put("perilaku", "mengizinkan");
params.put(โdownloadPathโ, โD:\\selenium-downloadsโ);
driver.executeCdpCommand(โPage.setDownloadBehaviorโ, params);
pengemudi.dapatkan(โhttps://demo.guru99.com/test/yahoo.htmlโ);
driver.findElement(By.id(โunduh messengerโ)).klik();
Anda dapat memverifikasi pengunduhan dengan melakukan polling pada direktori target untuk nama file yang diharapkan dan memeriksa ukurannya, yang membuat pengujian menjadi deterministik tanpa skrip eksternal.












