Kullanarak Dosya Yükleme ve İndirme Selenium
⚡ Akıllı Özet
Dosya yükleme ve indirme işlemlerini kullanarak Selenium WebDriver iş akışları, giriş alanları için yerel sendKeys() işlevine, diyaloglar için AutoIt veya Robot'a ve CDP komutlarına dayanır. Selenium 4. Otomasyon çalıştırmaları sırasında güvenli indirme yollarını ayarlamak için.

WebDriver'da dosya yükleme işlemi, dosya seçme giriş alanında `sendKeys()` yöntemini kullanarak yüklenecek dosyanın yolunu girmek suretiyle kolayca yapılır. Bu eğitimde, WebDriver kullanarak dosya yükleme ve indirme işlemlerini nasıl gerçekleştireceğinizi öğreneceksiniz. Selenium WebDriver.
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.
ithalat org.openqa.selenium.*;
ithalat org.openqa.selenium.firefox.FirefoxSürücü;
Kamusal sınıf PG9 {
genel statik boşluk ana(dizi[] argümanlar) {
Sistem.setProperty(“webdriver.gecko.driver”,“C:\\geckodriver.exe”);
dizi temel URL = “https://demo.guru99.com/test/upload/”;
Web Sürücüsü sürücü = yeni FirefoxSürücü();
sürücü.get(baseUrl);
WebElement uploadElement = driver.findElement(By.id(“yükle_0”));
// Dosya yolunu dosya seçme giriş alanına girin
uploadElement.sendKeys(“C:\\newhtml.html”);
// "Hizmet şartlarını kabul ediyorum" onay kutusunu işaretleyin
sürücü.findElement(By.id("şartlar")).tıklamak();
// "Dosya Yükle" düğmesine tıklayın
sürücü.findElement(By.name("Göndermek")).tıklamak();
}
}
Bu scripti çalıştırdıktan sonra dosyayı başarıyla yükleyebilmelisiniz ve buna benzer bir mesaj almalısınız.
WebDriver'da dosya yüklerken şu iki şeyi unutmayın:
- “Gözat” düğmesine tıklama işlemini simüle etmeye gerek yoktur. WebDriver, dosya yolunu otomatik olarak dosya seçme metin kutusuna girer. element.
- Dosya yolunu ayarlarken Java IDE'de ters eğik çizgi için uygun kaçış karakterini kullanın.
AutoIt ile Giriş Gerektirmeyen Yükleme Diyaloglarını Yönetme
Sayfa, yerleşik bir Gözat düğmesi yerine özel bir Gözat düğmesi kullandığında Eğer `sendKeys()` çalışmıyorsa, bu durumda `AutoIt` komut dosyasını çağırabilirsiniz. Selenium Dosya yolunu işletim sistemi iletişim kutusuna yazın ve Enter tuşuna basın.
Aşağıdaki betiği şu şekilde kaydedin: upload.au3onu derle yükleme.exedaha sonra onu şuradan çağırın: Java Gözat düğmesine tıkladıktan sonra.
WinWaitActive("Açık")
Göndermek(“C:\newhtml.html”)
Göndermek("{GİRMEK}")
Başlangıç JavaGözat düğmesine tıkladıktan sonra yardımcı işlevi tetikleyin:
Süre.getRuntime().exec(“C:\\AutoIt\\upload.exe”);
java.awt.Robot sınıfı tamamen saf bir sınıftır.Java AutoIt kullanılamadığında alternatif bir çözüm, ancak AutoIt daha güvenilir. Windows Çünkü başlığa göre diyalog açılmasını bekliyor.
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 bunu yukarıdaki adımda oluşturduğunuz Wget klasörüne yerleştirin.
) 2 Adım tuşuna basarak Çalıştır'ı açın Windows Klavye + “R” tuşlarına bası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.
C sürücüsüne yazmada bir sorun var gibi görünüyor.
) 4 Adım Kodu çalıştırmadan önce komut satırında wget hatalarını ayıklamanız gerekiyor. Selenium WebDriver. Bu hatalar devam edecektir. Eclipse ve hata mesajları o kadar bilgilendirici olmayacaktır. Öncelikle wget'i komut satırında çalışır hale getirmek 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 yazma işleminde bir sorun var. İndirme konumunu D sürücüsüne değiştirelim ve sonuçları kontrol edelim.
Messenger başarıyla indirildi.
Devam etmeden önce, indirdiğiniz 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Üssümüz URL olmalı 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 almak ve bunu bir String değişkeni olarak kaydetmek için getAttribute() işlevini kullanın. Bu örnekte, değişkeni "sourceLocation" olarak adlandırdık.
) 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.
ithalat java.io.IOİstisna;
ithalat org.openqa.selenium.*;
ithalat org.openqa.selenium.firefox.FirefoxSürücü;
Kamusal sınıf PG8 {
genel statik boşluk ana(dizi[] argümanlar) {
Sistem.setProperty(“webdriver.gecko.driver”,“C:\\geckodriver.exe”);
dizi temel URL = “https://demo.guru99.com/test/yahoo.html”;
Web Sürücüsü sürücü = yeni FirefoxSürücü();
sürücü.get(baseUrl);
WebElement indirmeButonu = sürücü.findElement(By.id(“messenger-download”));
dizi kaynakKonum = indirmeDüğmesi.özniteliğiAl(“href”);
dizi wget_komutu = “cmd /c C:\\Wget\\wget.exe -PD: –no-check-certificate “ + kaynakKonumu;
denemek {
Süreç exec = Runtime.getRuntime().exec(wget_command);
int çıkış değeri = exec.waitFor();
System.out.println(“Çıkış değeri: “ + çıkış değeri);
} yakalamak (Kesilen İstisna | IO İstisnası eski) {
System.out.println(ex.toString());
}
sürücü.kapat();
}
}
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.
Özel İndirme Yolu Ayarlama Selenium 4 CDP
Selenium 4. adım, üçüncü taraf araçlara ihtiyaç duymadan tarayıcı indirme davranışını kontrol etmenizi sağlayan Chrome Geliştirici Araçları Protokolünü ortaya çıkarır. Aşağıdaki kod parçası, tüm indirmeleri özel bir klasöre yönlendirir ve "Farklı Kaydet" istemini atlar, böylece dosyalar testin beklediği yere kaydedilir.
Harita<dizi,nesne> parametreler = yeni HashMah<>();
parametreler.koy("davranış", "izin vermek");
parametreler.koy(“indirme yolu”, “D:\\selenium-indirmeleri”);
sürücü.executeCdpCommand(“Page.setDownloadBehavior”, parametreler);
sürücü.al(“https://demo.guru99.com/test/yahoo.html”);
sürücü.findElement(By.id(“messenger-download”)).tıklamak();
Hedef dizinde beklenen dosya adını sorgulayarak ve boyutunu kontrol ederek indirme işlemini doğrulayabilirsiniz; bu da testi harici komut dosyalarına gerek kalmadan kesin hale getirir.












