Cara Memuat naik & Muat turun Fail menggunakan Selenium Webdriver

Isi kandungan:

Anonim

Dalam tutorial ini, kita akan belajar Bagaimana menangani muat naik dan muat turun fail.

Memuat naik Fail

Untuk bahagian ini, kami akan menggunakan http://demo.guru99.com/test/upload/ sebagai aplikasi ujian kami. Laman web ini dengan mudah membolehkan mana-mana pengunjung memuat naik fail tanpa memerlukan mereka mendaftar.

Memuat naik fail dalam WebDriver dilakukan dengan hanya menggunakan metode sendKeys () pada bidang input pilih fail untuk memasukkan jalan ke file yang akan diunggah.

Tangani pop timbul muat naik Fail di Selenium Webdriver
mengendalikan pop timbul muat naik fail dalam pemacu web selenium

Katakanlah kami ingin memuat naik fail "C: \ newhtml.html". Kod WebDriver kami harus seperti yang ditunjukkan di bawah.

pakej projek baru;import org.openqa.selenium. *;import org.openqa.selenium.firefox.FirefoxDriver;kelas awam PG9 {utama kekosongan statik awam (String [] args) {System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");String baseUrl = "http://demo.guru99.com/test/upload/";Pemacu WebDriver = FirefoxDriver baru ();driver.get (baseUrl);WebElement uploadElement = driver.findElement (By.id ("uploadfile_0"));// masukkan jalur fail ke medan input pemilihan failmuat naikElement.sendKeys ("C: \\ newhtml.html");// tandakan kotak centang "Saya menerima syarat perkhidmatan"driver.findElement (By.id ("syarat")). klik ();// klik butang "UploadFile"driver.findElement (By.name ("hantar")). klik ();}}

Setelah menjalankan skrip ini, anda seharusnya dapat memuat naik fail dengan jayanya dan anda akan mendapat mesej yang serupa dengan ini.

Ingatlah untuk mengikuti dua perkara semasa memuat naik fail di WebDriver

  1. Tidak perlu meniru klik butang "Browse". WebDriver secara automatik memasuki jalur fail ke kotak teks pemilihan fail elemen
  2. Semasa menetapkan jalur file di Java IDE anda, gunakan karakter pelarian yang tepat untuk garis miring balik.

Memuat turun Fail

WebDriver tidak mempunyai kemampuan untuk mengakses kotak dialog Muat turun yang disajikan oleh penyemak imbas semasa anda mengklik pada pautan muat turun atau butang. Namun, kita dapat memintas kotak dialog ini menggunakan program terpisah yang disebut "wget".

Apa itu Wget?

Wget adalah program baris perintah kecil dan mudah digunakan untuk mengautomasikan muat turun . Pada dasarnya, kami akan mengakses Wget dari skrip WebDriver kami untuk melakukan proses muat turun.

Menyiapkan Wget

Langkah 1: Di Drive C anda, buat folder baru dan namakan sebagai "Wget".

Muat turun wget.exe dari sini dan Letakkan di folder Wget yang anda buat dari langkah di atas.

Langkah 2: Buka Jalankan dengan menekan kekunci windows + "R"; taip "cmd & klik ok

Ketik perintah "cd /" untuk beralih ke direktori root

Langkah 3: Ketik perintah untuk memeriksa sama ada persediaan yang diberikan berfungsi

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

Nampaknya ada masalah menulis ke pemacu C.

Langkah 4: Anda perlu men-debug kesalahan wget di baris perintah sebelum anda menjalankan kod menggunakan Selenium Webdriver. Kesalahan ini akan berterusan di Eclipse dan mesej ralat tidak akan memberi maklumat. Paling baik untuk mula bekerja menggunakan baris arahan. Sekiranya ia berfungsi dalam baris arahan, ia pasti akan berfungsi di Eclipse.

Dalam contoh kami, seperti yang ditunjukkan pada langkah 3, terdapat masalah menulis ke pemacu C. Mari ubah lokasi muat turun ke pemacu D dan periksa hasilnya.

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

Messenger berjaya dimuat turun.

Sebelum anda meneruskannya, jangan lupa untuk memadam fail yang dimuat turun

Menggunakan WebDriver dan Wget

Dalam contoh berikut, kami akan menggunakan WebDriver dan wget untuk memuat turun perisian sembang popular yang dipanggil Yahoo Messenger. URL asas kami ialah http://demo.guru99.com/test/yahoo.html.

Langkah 1

Import pakej "java.io.IOException" kerana kita perlu menangkap IOException kemudian di Langkah 4.

Langkah 2

Gunakan getAttribute () untuk mendapatkan nilai "href" pautan muat turun dan simpan sebagai pemboleh ubah String. Dalam kes ini, kami menamakan pemboleh ubah sebagai "sourceLocation".

Langkah 3

Siapkan sintaks untuk wget menggunakan arahan berikut.

Langkah 4

Mulakan proses memuat turun dengan memanggil wget dari kod WebDriver kami.

Untuk meringkaskan semuanya, kod WebDriver anda mungkin seperti yang ditunjukkan di bawah.

pakej projek baru;import java.io.IOException;import org.openqa.selenium. *;import org.openqa.selenium.firefox.FirefoxDriver;kelas awam PG8 {utama kekosongan statik awam (String [] args) {System.setProperty ("webdriver.gecko.driver", "C: \\ geckodriver.exe");String baseUrl = "http://demo.guru99.com/test/yahoo.html";Pemacu WebDriver = FirefoxDriver baru ();driver.get (baseUrl);Muat turun WebElementButton = driver.findElement (Oleh.id ("muat turun utusan"));String sourceLocation = muat turunButton.getAttribute ("href");Rentetan wget_command = "cmd / c C: \\ Wget \\ wget.exe -PD: --no-check-certificate" + sourceLocation;cuba {Proses exec = Runtime.getRuntime (). Exec (wget_command);int exitVal = exec.waitFor ();System.out.println ("Nilai keluar: + exitVal);} tangkapan (InterruptException | IOException ex) {System.out.println (ex.toString ());}pemandu.tutup ();}}

Setelah melaksanakan kod ini, periksa pemacu D anda dan sahkan bahawa pemasang Yahoo Messenger berjaya dimuat turun di sana.

Ringkasan

  • Memuat naik fail dalam WebDriver dilakukan dengan hanya menggunakan metode sendKeys () pada bidang input pilih fail untuk memasukkan jalan ke file yang akan diunggah.
  • WebDriver tidak dapat memuat turun fail secara automatik.
  • Cara termudah untuk memuat turun fail menggunakan WebDriver adalah dengan menggunakan Wget.