Nasıl & Selenium Webdriver kullanarak bir Dosya İndirin

İçindekiler:

Anonim

Bu eğitimde, dosya yüklemeleri ve indirmeleri ile nasıl başa çıkılacağını öğreneceğiz.

Dosyaları Yükleme

Bu bölüm için test uygulamamız olarak http://demo.guru99.com/test/upload/ kullanacağız. Bu site, herhangi bir ziyaretçinin kaydolmasına gerek kalmadan kolayca dosya yüklemesine izin verir.

WebDriver'da dosyaların yüklenmesi, yüklenecek dosyanın yolunu girmek için dosya seçme giriş alanındaki sendKeys () yöntemi kullanılarak yapılır.

Selenium Webdriver'da Dosya yükleme açılır penceresini yönetin
selenium webdriver'da dosya yükleme açılır penceresini işle

"C: \ newhtml.html" dosyasını yüklemek istediğimizi varsayalım. WebDriver kodumuz aşağıda gösterilen gibi olmalıdır.

newproject paketi;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 = "http://demo.guru99.com/test/upload/";WebDriver sürücüsü = yeni FirefoxDriver ();driver.get (baseUrl);WebElement uploadElement = driver.findElement (By.id ("uploadfile_0"));// dosya yolunu dosya seçimi giriş alanına girinuploadElement.sendKeys ("C: \\ newhtml.html");// "Hizmet şartlarını kabul ediyorum" onay kutusunu işaretleyindriver.findElement (Yazan.id ("koşullar")) tıklayın ();// "Dosya Yükle" düğmesini tıklayındriver.findElement (By.name ("gönder")). tıklayın ();}}

Bu betiği çalıştırdıktan sonra, dosyayı başarıyla yükleyebilmeli ve buna benzer bir mesaj almalısınız.

WebDriver'da dosya yüklerken iki şeyi takip etmeyi unutmayın.

  1. "Gözat" düğmesine tıklamayı simüle etmeye gerek yoktur. WebDriver, öğesinin dosya seçimi metin kutusuna dosya yolunu otomatik olarak girer
  2. Java IDE'nizde dosya yolunu ayarlarken, ters eğik çizgi için uygun çıkış karakterini kullanın.

Dosyaları İndirme

WebDriver, bir indirme bağlantısına veya düğmesine tıkladığınızda tarayıcılar tarafından sunulan İndir iletişim kutularına erişme özelliğine sahip değildir . Ancak, "wget" adlı ayrı bir program kullanarak bu iletişim kutularını atlayabiliriz.

Wget nedir?

Wget, indirmeleri otomatikleştirmek için kullanılan küçük ve kullanımı kolay bir komut satırı programıdır . Temel olarak, indirme işlemini gerçekleştirmek için WebDriver komut dosyamızdan Wget'e erişeceğiz.

Wget kurulumu

Adım 1: C Sürücünüzde yeni bir klasör oluşturun ve bunu "Wget" olarak adlandırın.

Buradan wget.exe dosyasını indirin ve yukarıdaki adımda oluşturduğunuz Wget klasörüne yerleştirin.

Adım 2: Windows tuşu + "R" tuşlarına basarak Çalıştır'ı açın; "cmd yazın ve tamam'a tıklayın

Kök dizine gitmek için "cd /" komutunu yazın

Adım 3: Verilen kurulumun çalışıp çalışmadığını kontrol etmek için komutu yazın.

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

C sürücüsüne yazarken bir sorun var gibi görünüyor.

Adım 4: Selenium Webdriver kullanarak kodu çalıştırmadan önce komut satırındaki wget hatalarını ayıklamanız gerekir. Bu hatalar Eclipse'de devam edecek ve hata mesajları bilgilendirici olmayacaktır. İlk önce komut satırını kullanarak çalışmaya başlamak en iyisidir. Komut satırında çalışıyorsa kesinlikle Eclipse'de çalışacaktır.

Örneğimizde, 3. adımda gösterildiği gibi, C sürücüsüne yazarken bir sorun var. İndirme konumunu D sürücüsü olarak değiştirelim ve sonuçları kontrol edelim.

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

Messenger başarıyla indirildi.

Devam etmeden önce indirilen dosyayı silmeyi unutmayın

WebDriver ve Wget Kullanımı

Aşağıdaki örnekte, Yahoo Messenger adlı popüler bir sohbet yazılımını indirmek için WebDriver ve wget kullanacağız. Temel URL'miz http://demo.guru99.com/test/yahoo.html olacaktır.

Aşama 1

"Java.io.IOException" paketini içe aktarın çünkü 4. Adımda daha sonra bir IOException yakalamamız gerekecek.

Adım 2

İndirme bağlantısının "href" değerini elde etmek ve bunu bir String değişkeni olarak kaydetmek için getAttribute () kullanın. Bu durumda, değişkeni "sourceLocation" olarak adlandırdık.

Aşama 3

Aşağıdaki komutu kullanarak wget için sözdizimini ayarlayın.

4. adım

İndirme sürecini WebDriver kodumuzdan wget'ı arayarak başlatın.

Özetlemek gerekirse, WebDriver kodunuz aşağıda gösterilene benzeyebilir.

newproject paketi;java.io.IOException'ı içe aktarın;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 = "http://demo.guru99.com/test/yahoo.html";WebDriver sürücüsü = yeni FirefoxDriver ();driver.get (baseUrl);WebElement downloadButton = driver.findElement (Yazan.id ("messenger-download"));String sourceLocation = downloadButton.getAttribute ("href");String wget_command = "cmd / c C: \\ Wget \\ wget.exe -PD: --no-check-sertifika" + sourceLocation;Deneyin {İşlem exec = Runtime.getRuntime (). Exec (wget_command);int exitVal = exec.waitFor ();System.out.println ("Çıkış değeri: + exitVal);} catch (InterruptedException | IOException ex) {System.out.println (ex.toString ());}driver.close ();}}

Bu kodu çalıştırdıktan sonra, D sürücünüzü kontrol edin ve Yahoo Messenger yükleyicisinin buraya başarıyla indirildiğini doğrulayın.

Özet

  • WebDriver'da dosyaların yüklenmesi, yüklenecek dosyanın yolunu girmek için dosya seçme giriş alanındaki sendKeys () yöntemi kullanılarak yapılır.
  • WebDriver, dosyaların indirilmesini kendi başına otomatikleştiremez.
  • WebDriver kullanarak dosya indirmenin en kolay yolu Wget kullanmaktır.