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.

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
- Tidak perlu meniru klik butang "Browse". WebDriver secara automatik memasuki jalur fail ke kotak teks pemilihan fail elemen
- 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.