Kullanarak Dosya Yükleme ve İndirme Selenium Web sürücüsü
Selenium'a dosya yükle
Dosyaların WebDriver'a yüklenmesi, yüklenecek dosyanın yolunu girmek için dosya seçme giriş alanındaki sendKeys() yöntemi kullanılarak yapılır.
Bu eğitimde dosya yükleme ve indirme işlemlerini nasıl halledeceğimizi öğreneceğiz.
Dosya Nasıl Yüklenir? Selenium
Bu bölüm için kullanacağımız https://demo.guru99.com/test/upload/ test uygulamamız olarak. Bu site, herhangi bir ziyaretçinin kaydolmasına gerek kalmadan kolayca dosya yüklemesine olanak tanır.

Diyelim ki “C:\newhtml.html” dosyasını yüklemek istiyoruz. WebDriver kodumuz aşağıda gösterilen gibi olmalıdır.
package newproject; 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 = "https://demo.guru99.com/test/upload/"; WebDriver driver = new FirefoxDriver(); driver.get(baseUrl); WebElement uploadElement = driver.findElement(By.id("uploadfile_0")); // enter the file path onto the file-selection input field uploadElement.sendKeys("C:\\newhtml.html"); // check the "I accept the terms of service" check box driver.findElement(By.id("terms")).click(); // click the "UploadFile" button driver.findElement(By.name("send")).click(); } }
Bu scripti çalıştırdıktan sonra dosyayı başarıyla yükleyebilmelisiniz ve buna benzer bir mesaj almalısınız.
WebDriver'a dosya yüklerken iki şeyi unutmayın
- "Gözat" düğmesine tıklamayı simüle etmeye gerek yoktur. WebDriver, dosya yolunu otomatik olarak dosya seçimi metin kutusuna girer. eleman
- Dosya yolunu ayarlarken Java IDE'de ters eğik çizgi için uygun kaçış karakterini kullanın.
Dosya Nasıl İndirilir Selenium Web sürücüsü
WebDriver'ın İndirme iletişim kutularına erişim yeteneği yok tarayıcılar tarafından bir indirme bağlantısına veya düğmesine tıkladığınızda sunulur. 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 Wget’e WebDriver betiğimizden erişeceğiz.
Wget'i ayarlama
) 1 Adım C Sürücünüzde yeni bir klasör oluşturun ve onu “Wget” olarak adlandırın.
Wget.exe'yi indirin buradan ve yukarıdaki adımla oluşturduğunuz Wget klasörüne yerleştirin.
) 2 Adım Windows tuşu + “R” tuşuna basarak Çalıştır’ı açın; “cmd” yazın ve Tamam’a tıklayın
Kök dizine geçmek için “cd /” komutunu yazın
) 3 Adım Verilen kurulumun çalışıp çalışmadığını kontrol etmek için komutu yazın
cmd /c C:\\Wget\\wget.exe -P C: --no-check-certificate https://demo.guru99.com/selenium/msgr11us.exe
C sürücüsüne yazmada bir sorun var gibi görünüyor.
) 4 Adım Kodu kullanarak çalıştırmadan önce komut satırındaki wget hatalarını ayıklamanız gerekir. Selenium Web sürücüsü. Bu hatalar devam edecek Eclipse ve hata mesajları o kadar bilgilendirici olmayacaktır. İlk önce wget'in komut satırını kullanarak çalışmasını sağlamak en iyisidir. Komut satırında çalışıyorsa kesinlikle çalışacaktır Eclipse.
Örneğimizde, 3. adımda gösterildiği gibi, C sürücüsüne yazmada 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 -P D: --no-check-certificate https://demo.guru99.com/selenium/msgr11us.exe
Messenger başarıyla indirildi.
Devam etmeden önce indirilen dosyayı silmeyi unutmayın
WebDriver ve Wget'i kullanma
Aşağıdaki örnekte, Yahoo adlı popüler bir sohbet yazılımını indirmek için WebDriver ve wget'i kullanacağız Messenger. Temel URL'miz şöyle olacaktır: https://demo.guru99.com/test/yahoo.html.
) 1 Adım Adım 4'te bir IOException yakalamamız gerekeceğinden “java.io.IOException” paketini içe aktarın.
) 2 Adım İndirme bağlantısının “href” değerini elde etmek ve bunu bir String değişkeni olarak kaydetmek için getAttribute() öğesini kullanın. Bu durumda değişkene “sourceLocation” ismini verdik.
) 3 Adım Aşağıdaki komutu kullanarak wget için sözdizimini ayarlayın.
) 4 Adım WebDriver kodumuzdan wget'i çağırarak indirme işlemini başlatın.
Hepsini özetlemek gerekirse, WebDriver kodunuz aşağıda gösterilene benzeyebilir.
package newproject; import java.io.IOException; 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 = "https://demo.guru99.com/test/yahoo.html"; WebDriver driver = new FirefoxDriver(); driver.get(baseUrl); WebElement downloadButton = driver.findElement(By .id("messenger-download")); String sourceLocation = downloadButton.getAttribute("href"); String wget_command = "cmd /c C:\\Wget\\wget.exe -P D: --no-check-certificate " + sourceLocation; try { Process exec = Runtime.getRuntime().exec(wget_command); int exitVal = exec.waitFor(); System.out.println("Exit value: " + 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'nun Messenger yükleyici oraya başarıyla indirildi.
ÖZET
- Dosyaların WebDriver'a 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'i kullanmaktır.