Cara Mengunggah & Unduh File menggunakan Selenium Webdriver

Daftar Isi:

Anonim

Dalam tutorial ini, kita akan belajar Bagaimana menangani unggahan dan unduhan file.

Mengupload File

Untuk bagian ini, kami akan menggunakan http://demo.guru99.com/test/upload/ sebagai aplikasi pengujian kami. Situs ini dengan mudah memungkinkan setiap pengunjung untuk mengunggah file tanpa mengharuskan mereka untuk mendaftar.

Mengupload file di WebDriver dilakukan hanya dengan menggunakan metode sendKeys () pada bidang masukan pilih file untuk memasukkan jalur ke file yang akan diunggah.

Menangani popup unggah file di Selenium Webdriver
menangani popup unggah file di selenium webdriver

Misalkan kita ingin mengupload file "C: \ newhtml.html". Kode WebDriver kami harus seperti yang ditunjukkan di bawah ini.

paket proyek baru;import org.openqa.selenium. *;impor org.openqa.selenium.firefox.FirefoxDriver;kelas publik PG9 {public static void main (String [] args) {System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");String baseUrl = "http://demo.guru99.com/test/upload/";Driver WebDriver = FirefoxDriver baru ();driver.get (baseUrl);WebElement uploadElement = driver.findElement (By.id ("uploadfile_0"));// masukkan jalur file ke kolom input pemilihan fileuploadElement.sendKeys ("C: \\ newhtml.html");// centang kotak "Saya menerima persyaratan layanan"driver.findElement (By.id ("syarat")). click ();// klik tombol "UploadFile"driver.findElement (By.name ("send")). click ();}}

Setelah menjalankan skrip ini, Anda seharusnya dapat mengunggah file dengan sukses dan Anda akan mendapatkan pesan seperti ini.

Ingatlah dua hal berikut saat mengupload file di WebDriver

  1. Tidak perlu melakukan simulasi klik pada tombol "Browse". WebDriver secara otomatis memasukkan jalur file ke kotak teks pemilihan file dari elemen
  2. Saat menyetel jalur file di Java IDE Anda, gunakan karakter escape yang tepat untuk garis miring terbalik.

Mendownload File

WebDriver tidak memiliki kemampuan untuk mengakses kotak dialog Download yang ditampilkan oleh browser saat Anda mengklik link atau tombol download. 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 unduhan . 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 Letakkan 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 pindah ke direktori root

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

cmd / c C: \\ Wget \\ wget.exe -PC: --no-check-certificate http://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 menjalankan kode menggunakan Selenium Webdriver. Kesalahan ini akan tetap ada di Eclipse dan pesan kesalahan tidak akan informatif. Terbaik untuk pertama-tama membuat wget bekerja menggunakan baris perintah. Jika berfungsi di baris perintah, itu pasti akan berfungsi di Eclipse.

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

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

Messenger berhasil diunduh.

Sebelum Anda melangkah lebih jauh, jangan lupa untuk menghapus file yang diunduh

Menggunakan WebDriver dan Wget

Pada contoh berikut, kami akan menggunakan WebDriver dan wget untuk mengunduh perangkat lunak obrolan populer yang disebut Yahoo Messenger. URL dasar kami adalah http://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 kasus ini, kami menamai variabel sebagai "sourceLocation".

LANGKAH 3

Siapkan sintaks untuk wget menggunakan perintah berikut.

LANGKAH 4

Mulailah proses pengunduhan dengan memanggil wget dari kode WebDriver kami.

Singkatnya, kode WebDriver Anda bisa terlihat seperti yang ditunjukkan di bawah ini.

paket proyek baru;impor java.io.IOException;import org.openqa.selenium. *;impor org.openqa.selenium.firefox.FirefoxDriver;kelas publik PG8 {public static void main (String [] args) {System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");String baseUrl = "http://demo.guru99.com/test/yahoo.html";Driver WebDriver = FirefoxDriver baru ();driver.get (baseUrl);WebElement downloadButton = driver.findElement (Oleh.id ("messenger-download"));String sourceLocation = downloadButton.getAttribute ("href");String wget_command = "cmd / c C: \\ Wget \\ wget.exe -PD: --no-check-certificate" + sourceLocation;coba {Proses exec = Runtime.getRuntime (). Exec (wget_command);int exitVal = exec.waitFor ();System.out.println ("Nilai keluar: + exitVal);} menangkap (InterruptedException | IOException ex) {System.out.println (ex.toString ());}driver.close ();}}

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

Ringkasan

  • Mengupload file di WebDriver dilakukan hanya dengan menggunakan metode sendKeys () pada bidang masukan pilih file untuk memasukkan jalur ke file yang akan diunggah.
  • WebDriver tidak dapat mengotomatiskan pengunduhan file sendiri.
  • Cara termudah untuk mengunduh file menggunakan WebDriver adalah dengan menggunakan Wget.