how upload file using selenium webdriver 3 methods
Kod örnekleriyle Selenium'da dosya yüklemeyi işlemek için farklı yöntemler öğrenin:
Formlar, kayıt sayfaları, belge yükleyicileri vb. Gibi belirli bir web sitesine herhangi bir dosya veya belge yüklemeye ihtiyaç duyulduğunda dosya yükleme gerçekleştirilir.
Bir dosya yükleme işlemi, bir dosyaya istenen konumdan veya bilgisayarınızdan göz atmayı ve web sitesine yüklemeyi içerir.
=> TÜM Selenium Öğreticilerini Buradan Kontrol Edin
Ne öğreneceksin:
Selenium Yükleme Dosyası
Selenium'da dosya yüklemeyi gerçekleştirmek insan işini kolaylaştırabilir ve basitçe sendKeys () yöntem. Bir dosya yüklendikten sonra, dosyanın başarıyla yüklenip yüklenmediğini onaylayan bir mesaj görüntülenir. Dosya yüklemesi için bu tür daha birçok otomasyon yöntemi vardır.
Bu eğitimde ele alınan konular, HTML'de dosya yüklemeyi, Selenium'da dosya yüklemeyi işleme yöntemlerini içerir (yöntemler, yani sendKeys kullanarak, ardından AutoIT ve Robot sınıfını kullanarak).
Bu eğitimde ayrıca, Selenium'da bu yöntemleri kullanarak dosya yüklemeyi işlemek için kodun uygulanmasını açıklar, ardından Selenium yardımıyla dosya yüklemesinin gerçekleştirildiği birkaç örnek göreceğiz.
HTML Olarak Dosya Yükleme
Aşağıdaki kod uygulaması, HTML Sayfasında dosya yükleme işlemini açıklamaktadır. HTML kodu, yükleme işleminin önce üzerine tıklanarak nasıl gerçekleştirilebileceğini gösterir. Dosya seçin yüklenecek dosyaya göz atmak için düğmesine ve ardından Dosya yükleme seçeneği, daha sonra dosyanın başarıyla yüklendiğini görebiliriz.
Yukarıdaki resim, oluşturulan HTML sayfasından oluşmaktadır ve aşağıda bunun için HTML kodu bulunmaktadır. HTML koduna hızlıca bir göz atalım.
File Upload File Uploading (Upload the image file)
Select file to upload:
Böylelikle istenen dosyayı yüklerken Dosya yükleme seçeneği, yüklenmek üzere seçilen dosyanın başarıyla yüklendiğini onaylayan aşağıdaki sayfa (resim) görüntülenir (yani yüklenen resim dosyası görüntülenir).
(resim kaynak )
Selenyumda Dosya Yükleme Yöntemleri
Dosya Yüklemeyi İşlemek için bazı yöntemler ve aynı zamanda kodun uygulanmasını görelim.
Selenium'a yüklenen dosyalar aşağıdaki yöntemlerle yapılabilir:
- SendKeys yöntemini kullanma
- AutoIT aracını kullanma
- Robot Sınıfının yardımıyla
# 1) sendKeys yöntemini kullanma
Selenium'da dosya yüklemenin en temel yolu sendKeys yöntemini kullanmaktır. Selenium'da dosya yüklemek için dahili bir özelliktir.
Sözdizimi aşağıdaki gibidir:
WebElement upload_file = driver.findElement(By.xpath('//input(@id='file_up')')); upload_file.sendKeys('C:/Users/Sonali/Desktop/upload.png');
Yukarıdaki teknik için kod uygulamasını anlayalım:
Bu yöntemi kullanarak dosya yüklemek için, önce dosya yüklemesi için sağlanan öğeyi veya düğmeyi incelememiz, ardından sendKeys kullanarak yüklenecek asıl dosyanın tutulduğu yola göz atmamız gerekir. SendKeys'deki dosya adıyla birlikte yolu, programın dosyayı almak için belirtilen yola yönlendirilmesi için yerleştirin.
Bundan sonra, kaydet veya gönder düğmesine tıklayın ve dosya yüklenmiş olarak görünecektir. Zaman zaman dosyanın başarıyla yüklendiğine dair bir mesaj da alıyoruz.
SendKeys yöntemini kullanarak kod uygulaması:
en iyi ücretsiz youtube video indiricisi
package SeleniumPrograms; import java.io.IOException; import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; public class FileUpload { public static void main(String() args) throws IOException, InterruptedException { // TODO Auto-generated method stub WebDriver d = new FirefoxDriver(); d.manage().window().maximize(); //always write wait code after this d.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS); //for page load d.get('https://www.monsterindia.com/seeker/registration'); //Testing webpage d.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); //for Implicit wait JavascriptExecutor js = (JavascriptExecutor)d; //Scrolling using JavascriptExecutor js.executeScript('window.scrollBy(0,380)');//Scroll Down to file upload button (+ve) Thread.sleep(3000); // FILE UPLOADING USING SENDKEYS .... WebElement browse = d.findElement(By.xpath('//input(@id='file-upload')')); //click on ‘Choose file’ to upload the desired file browse.sendKeys('C:\Users\Chait\Desktop\Files\Job Specification.txt'); //Uploading the file using sendKeys System.out.println('File is Uploaded Successfully'); } }
Bu nedenle, sendKeys seçeneğini kullanarak dosya yüklemek için, gerekli dosyayı başarıyla karşıya yüklemek için dahili sendKeys yöntemini kullanmamız yeterlidir.
Bu, yukarıdaki kodun çıktısıdır ( Monster.com ) şu şekilde görüntülenen bir mesajı görebiliriz: 'Dosya başarıyla yüklendi' sendKeys yöntemini kullanarak dosyayı selenyum web sürücüsüne yükleme hakkında.
# 2) AutoIT Kullanımı
AutoIT Windows işletim sistemi için ücretsiz ve açık kaynaklı bir otomasyon aracıdır. Microsoft Windows kullanıcı arayüzünü otomatikleştirmek için bir BASIC komut dosyası bilgisayar dilinde yazılmıştır. Tuş vuruşlarının, fare hareketlerinin ve Windows kontrol işlemlerinin herhangi bir kombinasyonunu simüle eder.
AutoIT aracını indirme ve yükleme adımları:
- Açık bağlantı
- AUTOIT -> İNDİRMELER'e gidin. En son AutoIT'yi indirin.
- AutoIT yüklemesi ve kurulumuyla devam edin (sonra -> kabul et -> 32/64 bit seçimi -> dosya yükleme konumu seçimi -> Bitir.
- 2 kurulum dosyası vardır: a) AutoIt sürüm 3 ve B) SciTE auto 3.
- Kurulum tamamlandıktan sonra AutoIT düzenleyiciyi açın.
- Kurulum dosyalarının kaydedildiği konuma gidin, 'SciTE.exe' dosyasına tıklayın ve AutoIT düzenleyici açılır. AutoIT editörü için lütfen aşağıdaki ekran görüntüsüne bakın.
AutoIT_Editor:
Şimdi kısaca anlayalım bu araç nasıl kullanılır:
- AutoIT düzenleyiciyi açın.
- AutoIT düzenleyicide dosya yükleme işlemi için gerekli olan basit bir kod yazmamız gerekiyor (yüklenecek dosyanın adı kodda belirtilecektir).
- Şimdi düzenleyiciyi kapatın ve üzerine sağ tıklayın, komut dosyası derleme seçeneğini göreceksiniz. 64 bit makine için derleme komut dosyası (x64) seçeneğini seçin ve 32 bit makine için derleme komut dosyası (x86) ile gidin.
- Yukarıdaki adım tamamlanır tamamlanmaz bir .exe dosyası oluşturulur ve bu dosyadan selenyum tutulma kodumuzda bahsedilecektir. Derlemeden sonra aşağıdaki resimde görüldüğü gibi 'Fileupload.exe' dosya oluşturulur. Şimdi bu dosyayı Selenium web sürücüsü komut dosyasında kullanabiliriz.
Saved_files:
Aşağıdaki resim, fileupload.exe dosyasını çalıştıran selenium eclipse betiğini çalıştırarak, yüklenecek olan form.csv dosyasının nasıl yüklendiğini anlamamıza yardımcı olur.
>> Bunu ziyaret edin sayfa AutoIT hakkında daha fazla ayrıntı için.
ipad için en iyi satış noktası sistemi
Bu öğreticide daha sonra bu yöntemin uygulanmasını göreceğiz.
AutoIT'in Avantajları:
- AutoIT, ödeme yapmamız gerekmeyen açık kaynaklı bir araçtır.
- AutoIT kullanılarak küçük bağımsız yürütülebilir dosyalar oluşturulabilir.
- Kolay kayıt veya oynatma komut dosyalarını destekler.
- Kodda kolayca hata ayıklayabiliriz konsol yazma komutu .
- Farklı GUI'ler oluşturma seçeneğine sahiptir ve neredeyse tüm temel Windows kontrollerini tanır.
- Basit ve kullanıcı dostudur.
AutoIT'in dezavantajları:
- Yalnızca Windows işletim sisteminde çalışır
- Temel kodlama ilkeleri bilgisi bir zorunluluk olduğundan, profesyoneller için harika bir araç olduğunu kanıtlar ancak yeni başlayanlar için biraz karmaşık olabilir.
- AutoIT şu ana kadar Java desteğine sahip değildir.
- Kullanıcıların, önceden tanımlanmış farklı yardımcı program işlevlerini kullanırken ayrı kitaplıkları içe aktarması gerekir.
Şimdi, AutoIT kullanarak Dosya Yüklemenin uygulama koduna geçelim:
Burada, Selenium'da AutoIT kullanarak dosya yüklemeyi nasıl idare edebileceğimizi göreceğiz. Bunun için OrangeHRM web sitesi örneğini ele alalım.
AutoIT kullanarak Selenium'da dosya yüklemesini işlemek için kod uygulaması:
package SeleniumPrograms; import java.io.IOException; import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; public class FileUpload { public static void main(String() args) throws IOException, InterruptedException { // TODO Auto-generated method stub WebDriver d = new FirefoxDriver(); d.manage().window().maximize(); d.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS); // for page load d.get(“https://opensource-demo.orangehrmlive.com/“); // Testing webpage d.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); // for Implicit wait WebElement uname = d.findElement(By.id('txtUsername')); // Username.........ID uname.sendKeys('Admin'); WebElement pwd = d.findElement(By.name('txtPassword')); // Password.........NAME pwd.sendKeys('admin123'); WebElement loginb = d.findElement(By.xpath('//input(@id='btnLogin')')); loginb.click(); // Loginbutton......XPATH WebElement pim = d.findElement(By.id('menu_pim_viewPimModule')); pim.click(); // Admin tab-PIM WebElement config = d.findElement(By.id('menu_pim_Configuration')); config.click(); //Configuration tab WebElement data_imp = d.findElement(By.partialLinkText('Data ')); data_imp.click(); //Data Import tab.....PARTIALLINKT // UPLOADING FILE USING AutoIT.... WebElement browser = d.findElement(By.xpath('//input(@id='pimCsvImport_csvFile')')); //Browse button browser.click(); System.out.println(“1”); Runtime.getRuntime().exec('C:\Users\Chait\Desktop\autoit\fileupload.exe'); System.out.println('2'); Thread.sleep(3000); WebElement upload = d.findElement(By.id('btnSave')); //Upload button upload.click(); System.out.println('3'); System.out.println('File Uploaded Successfully'); // Confirmation message } }
Yukarıdaki kodda görüldüğü gibi, aşağıdaki satır AutoIT kullanımını gösterdiği için çok önemlidir:
Runtime.getRuntime (). Exec ('C: \ Kullanıcılar \ Chait \ Masaüstü \ autoit \ fileupload.exe');
Buraya,
- Çalışma süresi : Betiğin, betiğin çalıştığı ortamla arayüz oluşturmasını sağlar.
- getRuntime (): İşlemle ilişkili geçerli çalışma zamanını almak için kullanılır.
- exec (): AutoIT komut dosyasını çalıştırır (burada fileupload.exe'dir).
Program bu satırı çalıştırdığında, aşağıda gösterildiği gibi AutoIT kodunun yürütüldüğü fileupload.exe dosyasından geçer:
ControlFocus('File Upload','','Edit1') ControlSetText('File Upload','','Edit1','C:UsersChaitDesktopautoitdata_file.csv') ControlClick('File Upload','','Button1')
Buraya,
- ControlFocus: Bu yöntem, girdi odağını 'dosya adı' metin kutusuna ayarlar.
- ControlSetText: Bu yöntem dosyanın yolunu tanımlar. 'Dosya adı' metin kutusuna yükleyeceğimiz dosya - yolu izlenir.
- ControlClick: Bu yöntem, dosya yükleyici penceresinin 'Aç' düğmesine tıklamak için kullanılır.
Yukarıdaki kodun çıktısı aşağıda gösterilmiştir:
(resim kaynak )
# 3) Robot Sınıfının Yardımıyla
Bildiğimiz gibi robotlar, bazı görevleri yerine getirmek, klavye işlevlerini, fare işlevlerini ve daha fazlasını yapmak gibi çeşitli etkinliklerin yönetilmesine yardımcı olur. Burada, bir uygulama kullanılarak test edilirken klavye ve fareyi kontrol etmede yardımcı olan belirli işlevleri anlayacağız. Selenyum .
Robot Sınıfını uygulamak için KeyEvents veya Yöntemler
Robot sınıfının uygulanmasında, test betiklerinin yürütülmesi için birkaç yöntem vardır.
Bunlar aşağıda belirtilmiştir:
- Tuşa basın (): Herhangi bir tuşa basmak istediğimizde bu yöntem çağrılır.
-
- Misal: robot.keyPress (KeyEvent. UK_ENTER );
- KeyRelease (): Bu yöntem, basılan tuşu serbest bırakmak için kullanılır.
- Misal: robot.keyRelease (KeyEvent. UK_ENTER );
- MouseMove (): Fare işaretçisini 'X' ve 'Y' koordinatlarının üzerine getirme ihtiyacı olduğunda kullanılır.
- Misal: robot.mouseMove ( koordinates.get.X () , koordinates.get.Y () );
- MousePress (): Bu yöntem, farenin sol tuşuna basmak istediğimizde çağrılır.
- Misal: robot.mousePress (InputEvent. BUTTON_MASK );
- MouseRelease (): Bu yöntem, basılı fare düğmesini serbest bırakmak için kullanılır.
- Misal: robot.mouseRelease (InputEvent. BUTTON_DOWN_MASK );
Robot Sınıfının Avantajları
- Robot sınıfını kullanarak dosya yüklemek kolaydır.
- Klavye ve fare işlevlerini yönetir.
- Pop-up'ları yönetmek de mümkündür.
Robot Sınıfının Dezavantajları
- Klavye veya fare olayı, yalnızca pencerenin geçerli örneğinde çalışır.
- Bir robot olayı yürütülürken, kod yürütme başka bir pencereye taşınırsa, fare veya klavye olayı hala önceki pencerede kalır.
- Farklı pencereler arasında geçiş yapmak kolay değildir.
Robot Sınıfı kullanılarak Dosya Yükleme için kodun uygulanması:
Bunun için örneğini ele alacağız. Grammarly.com İnternet sitesi. Aşağıda, Robot sınıfını kullanarak Selenium'da dosya yüklemesinin işlenmesi için uygulama kodu verilmiştir.
package SeleniumPrograms; import java.awt.AWTException; import java.awt.Toolkit; import java.awt.datatransfer.StringSelection; import java.util.concurrent.TimeUnit; import java.awt.Robot; import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import com.sun.glass.events.KeyEvent; public class FileUpload_Robo { public static void main(String() args) throws InterruptedException, AWTException { // TODO Auto-generated method stub WebDriver drv = new FirefoxDriver(); // starting Firefox browser drv.manage().window().maximize(); // maximizing window drv.manage().timeouts().pageLoadTimeout(10, TimeUnit. SECONDS);//for page load drv.get('https://www.grammarly.com/plagiarism-checker');//open testing website drv.manage().timeouts().implicitlyWait(10, TimeUnit. SECONDS);// for Implicit wait JavascriptExecutor js = (JavascriptExecutor)drv; // Scroll operation using Js Executor js.executeScript('window.scrollBy(0,200)'); // Scroll Down(+ve) upto browse option Thread.sleep(2000); // suspending execution for specified time period WebElement browse = drv.findElement(By.linkText('Upload a file')); // using linkText, to click on browse element browse.click(); // Click on browse option on the webpage Thread.sleep(2000); // suspending execution for specified time period // creating object of Robot class Robot rb = new Robot(); // copying File path to Clipboard StringSelection str = new StringSelection('C:\Users\Chait\Desktop\File upload.docx'); Toolkit.getDefaultToolkit().getSystemClipboard().setContents(str, null); // press Contol+V for pasting rb.keyPress(KeyEvent.VK_CONTROL); rb.keyPress(KeyEvent.VK_V); // release Contol+V for pasting rb.keyRelease(KeyEvent.VK_CONTROL); rb.keyRelease(KeyEvent.VK_V); // for pressing and releasing Enter rb.keyPress(KeyEvent.VK_ENTER); rb.keyRelease(KeyEvent.VK_ENTER); } }
Yukarıdaki selenyum kodunun çıktısı aşağıda gösterilmiştir:
Böylelikle dosyalar, Kopyalama, yapıştırma, girme vb. İçin Tuşa Basma ve Tuş Bırakma gibi giriş olaylarının kullanımını görebildiğimiz bir Robot sınıfı yardımıyla yüklenebilir.
Dosya Yükleme Örnekleri
Selenium yardımı ile gerçekleştirilen birkaç dosya yükleme örneğini görelim:
# 1) Gmail Hesabı
Bir Gmail hesabında, birine e-posta gönderirken bir ek, yani herhangi bir türde olabilecek bir dosya belgesi ekleyebilirsiniz: doc, text, csv, image, pdf, vb. Burada, dosya yükleme bağlama girer.
Daha fazla ayrıntı için lütfen aşağıdaki dosya yükleme ekran görüntüsüne bakın.
tutulmada svn nasıl kullanılır
# 2) Doğrulama için belge yükleme
Genellikle kayıt sayfaları veya formları için doğrulama için belgeler yüklememiz gerekir.
Daha fazla açıklama için lütfen aşağıdaki resme bakın:
ID_Proof
Reg_form
Kanıt doğrulama, adres doğrulama, eğitim kanıtı vb. Gibi çeşitli bu tür doğrulamalar için belirli belgelerin yüklenmesi gerekir.
Sonuç
Bu nedenle, bu eğitimde, HTML sayfasında dosya yüklemesini gördük. Ayrıca Selenium'da dosya yüklemeyi işlemek için çeşitli yöntemler gördük (sendKeys kullanma, AutoIT kullanma ve Robot sınıfını kullanma gibi yöntemleri içerir). Ayrıca, bu yöntemlerin her biri için Selenium'da dosya yüklemeyi işlemek için kodun uygulanmasını anladık ve sonunda birkaç örneğe baktık.
Yazar Bio - Bu makale, MITCOE, Pune, Professional Software Tester ve Content Writer'dan nitelikli bir B.E. (Bilgisayar) olan Sonali Satpute tarafından yazılmıştır.
=> Tam Selenyum Kılavuzunu Okuyun
Önerilen Kaynaklar
- AutoIT Kullanarak Selenium'da Windows Açılır Penceresi Nasıl Yönetilir
- Selenium WebDriver'da Radyo Düğmeleri Nasıl Seçilir?
- Selenyumdaki Onay Kutusu Örneklerle Nasıl Seçilir
- Salatalık Selenium Eğitimi: Salatalık Java Selenium WebDriver Entegrasyonu
- Selenium WebDriver'a Giriş - Selenium Eğitimi # 8
- ChromeDriver Selenium Eğitimi: Chrome'da Selenium Webdriver Testleri
- Selenium WebDriver'da Java ile Robot Sınıfı
- AutoIt Eğitimi - AutoIt İndirme, Yükleme ve Temel AutoIt Komut Dosyası