how upload file using selenium webdriver 3 methods
Naučite različite metode za rukovanje prijenosom datoteka u Seleniju s primjerima koda:
Prijenos datoteka vrši se kada postoji potreba za prijenosom bilo koje datoteke ili dokumenta na određeno web mjesto, poput obrazaca, stranica za registraciju, uređaja za prijenos dokumenata itd.
Prijenos datoteke uključuje postupak pregledavanja datoteke sa željenog mjesta ili s računala i prijenos na web stranicu.
=> Ovdje provjerite SVE tutorijale za selenij
Što ćete naučiti:
Datoteka za prijenos selena
Prijenos datoteka u selenu može olakšati ljudski rad, a to se može učiniti jednostavno pomoću sendKeys () metoda. Nakon prijenosa datoteke prikazuje se poruka koja potvrđuje je li datoteka uspješno prenesena. Postoji mnogo više takvih metoda automatizacije za prijenos datoteka.
Teme obuhvaćene ovim uputstvom uključuju prijenos datoteka u HTML-u, metode za rukovanje prijenosom datoteka u seleniju (koje bi uključivale metode, naime: korištenje sendKeys, a zatim korištenje klase AutoIT i Robot).
Ovaj vodič također objašnjava implementaciju koda za rukovanje prijenosom datoteka pomoću ovih metoda u programu Selenium, nakon čega ćemo vidjeti nekoliko primjera gdje se prijenos datoteka vrši uz pomoć programa Selenium.
Prijenos datoteke u HTML-u
Sljedeća implementacija koda objašnjava postupak prijenosa datoteka na HTML stranicu. HTML kôd pokazuje kako se operacija prijenosa može izvesti tako da prvo kliknete na Odaberite datoteku gumb za pregledavanje datoteke za prijenos, a zatim kliknite na Prenesi datoteku opcija, nakon čega možemo vidjeti da je datoteka uspješno prenesena.
Gornja slika sastoji se od HTML stranice, a ispod je HTML kôd za istu. Kratko ćemo pogledati HTML kôd.
File Upload File Uploading (Upload the image file)
Select file to upload:
Tako prilikom prijenosa željene datoteke klikom na Prenesi datoteku opcija, prikazuje se donja stranica (slika) (tj. prikazuje se prenesena datoteka slike) koja potvrđuje da je datoteka odabrana za prijenos uspješno prenesena.
(slika izvor )
Metode za prijenos datoteka u selenu
Pogledajmo neke metode za rukovanje prijenosom datoteka, kao i implementaciju koda za isti.
Učitavanje datoteka u selenu može se izvršiti sljedećim metodama:
- Korištenjem metode sendKeys
- Korištenje alata AutoIT
- Uz pomoć klase robota
# 1) Korištenjem metode sendKeys
Najosnovniji način prijenosa datoteka u Selenium je metoda sendKeys. To je ugrađena značajka za prijenos datoteka u Selenium.
Sintaksa je kao u nastavku:
WebElement upload_file = driver.findElement(By.xpath('//input(@id='file_up')')); upload_file.sendKeys('C:/Users/Sonali/Desktop/upload.png');
Razumijemo implementaciju koda za gornju tehniku:
Za prijenos datoteka ovom metodom prvo moramo pregledati element ili gumb predviđen za prijenos datoteka, a zatim pomoću sendKeys pregledati put na kojem se čuva stvarna datoteka za prijenos. Stazu smjestite zajedno s imenom datoteke u sendKeys tako da program pređe na spomenutu stazu da bi preuzeo datoteku.
Nakon toga kliknite gumb spremi ili pošalji i datoteka će se vidjeti prenesena. Ponekad primamo i poruku da se datoteka uspješno prenosi.
Implementacija koda pomoću metode sendKeys:
java napravi kopiju niza
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'); } }
Dakle, za prijenos datoteka pomoću opcije sendKeys, jednostavno moramo koristiti ugrađenu metodu sendKeys da bismo uspješno prenijeli potrebnu datoteku.
Ovo je izlaz gornjeg koda (za Monster.com ) gdje možemo vidjeti poruku koja se prikazuje kao: 'Datoteka je uspješno prenesena' o prijenosu datoteke u upravljački program selena pomoću metode sendKeys.
# 2) Korištenje AutoIT-a
AutoIT je besplatni program i alat za automatizaciju otvorenog koda za operativni sustav Windows. Napisan je na BASIC skriptnom računalnom jeziku za automatizaciju korisničkog sučelja Microsoft Windows. Simulira bilo koju kombinaciju pritiska tipki, kretanja miša i manipulacije Windows kontrolom.
Koraci za preuzimanje i instaliranje alata AutoIT:
- Otvoren veza
- Idite na AUTOIT -> DOWNLOADS. Preuzmite najnoviji AutoIT.
- Nastavite s instalacijom i postavljanjem AutoIT-a (sljedeće -> slažem se -> 32/64 bitni odabir -> odabir mjesta instalacije datoteke -> Završi.
- Postoje 2 datoteke za postavljanje: a) Verzija AutoIt 3 i b) SciTE auto 3.
- Nakon završetka instalacije otvorite AutoIT editor.
- Idite na mjesto gdje se spremaju datoteke za postavljanje, kliknite datoteku ‘SciTE.exe’ i otvorit će se uređivač AutoIT. Pogledajte donji snimak zaslona za AutoIT editor.
AutoIT_Editor:
Razumijemo sada ukratko kako koristiti ovaj alat:
- Otvorite uređivač AutoIT.
- Moramo napisati jednostavan kod u uređivaču AutoIT, potreban za postupak prijenosa datoteka (naziv datoteke koja će se prenijeti bit će spomenuto u kodu).
- Sada zatvorite uređivač i kliknite ga desnom tipkom miša, vidjet ćete opciju kompajliranja skripte. Odaberite opciju kompajliranja skripte (x64) za 64-bitni stroj i idite na skriptu kompajliranja (x86) za 32-bitni stroj.
- Čim je gornji korak dovršen, kreira se .exe datoteka koja će biti navedena u našem kodu pomrčine selena. Nakon kompilacije, kao što se vidi na donjoj slici ‘Fileupload.exe’ datoteka se kreira. Sada ovu datoteku možemo iskoristiti u skripti web pokretačkog programa Selenium.
Spremljene_datoteke:
Slika u nastavku pomaže nam da shvatimo kako se datoteka za prijenos, a to je form.csv, izvršava izvršavanjem skripte za pomračenje selena koja pokreće datoteku fileupload.exe.
>> Posjetite ovo stranica za više detalja o AutoIT-u.
Implementaciju ove metode vidjet ćemo kasnije u ovom vodiču.
Prednosti AutoIT-a:
- AutoIT je alat otvorenog koda za koji ne trebamo plaćati.
- Mali samostalni izvršni programi mogu se stvoriti pomoću AutoIT-a.
- Podržava jednostavno snimanje ili reprodukciju skriptiranja.
- Kôd možemo lako ispraviti naredba za pisanje konzole .
- Ima mogućnost stvaranja različitih GUI-a i prepoznaje gotovo sve osnovne Windows kontrole.
- Jednostavan je i jednostavan za upotrebu.
Mane AutoIT-a:
- Radi samo u operacijskom sustavu Windows
- Kako je znanje o temeljnim načelima kodiranja neophodno, pokazalo se izvrsnim alatom za profesionalce, ali za početnike može biti malo komplicirano.
- AutoIT zasad nema dostupnu podršku za Java.
- Korisnici trebaju uvesti zasebne knjižnice dok koriste različite unaprijed definirane funkcije uslužnog programa.
Sada, prijeđimo na implementacijski kod za prijenos datoteka pomoću AutoIT-a:
Ovdje ćemo vidjeti kako se možemo nositi s prijenosom datoteka pomoću AutoIT-a u Seleniju. Za ovo ćemo razmotriti primjer web stranice OrangeHRM.
Implementacija koda za rukovanje prijenosom datoteka u selenu pomoću AutoIT-a:
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 } }
Kao što se vidi u gornjem kodu, sljedeći je redak vrlo važan jer prikazuje upotrebu AutoIT-a:
ado.net intervju pitanja i odgovori za iskusne
Runtime.getRuntime (). Exec („C: \ Users \ Chait \ Desktop \ autoit \ fileupload.exe“);
Ovdje,
- Vrijeme izvođenja : Omogućuje skripti sučelje s okolinom u kojoj se skripta izvodi.
- getRuntime (): Koristi se za dobivanje trenutnog vremena izvođenja povezanog s procesom.
- exec (): Izvršava skriptu AutoIT (ovdje datoteka fileupload.exe).
Kada program izvrši ovaj redak, on prolazi kroz datoteku fileupload.exe gdje se izvršava AutoIT kôd kao što je prikazano dolje:
ControlFocus('File Upload','','Edit1') ControlSetText('File Upload','','Edit1','C:UsersChaitDesktopautoitdata_file.csv') ControlClick('File Upload','','Button1')
Ovdje,
- ControlFocus: Ova metoda fokus fokusa postavlja na tekstualni okvir 'naziv datoteke'.
- ControlSetText: Ova metoda definira put datoteke. Datoteka koju ćemo prenijeti u tekstualni okvir 'naziv datoteke' - prati se njezin put.
- ControlClick: Ova se metoda koristi za klik na gumb „Otvori“ u prozoru za prijenos datoteka.
Izlaz za gornji kod prikazan je ispod:
(slika izvor )
# 3) Uz pomoć klase robota
Roboti kao što znamo pomažu u upravljanju raznim aktivnostima kao što su izvršavanje nekih zadataka, rukovanje funkcijama tipkovnice, mišem i mnogim drugima. Ovdje ćemo razumjeti određene funkcije korisne u upravljanju tipkovnicom i mišem dok se aplikacija testira pomoću Selen .
Ključni događaji ili metode za implementaciju klase robota
U implementaciji klase Robot postoji nekoliko metoda za izvršavanje testnih skripti.
Oni su spomenuti u nastavku:
- Pritiskom na tipku(): Ova se metoda poziva kada želimo pritisnuti bilo koju tipku.
-
- Primjer: robot.keyPress (KeyEvent. UK_ENTER );
- KeyRelease (): Ova se metoda koristi za otpuštanje pritisnute tipke.
- Primjer: robot.keyRelease (KeyEvent. UK_ENTER );
- Pomicanje miša (): Koristi se kada je potrebno pomicanje pokazivača miša preko koordinata 'X' i 'Y'.
- Primjer: robot.mouseMove ( koordinate.get.X () , koordinate.get.Y () );
- Pritisnite miš (): Ova se metoda poziva kada želimo pritisnuti lijevu tipku miša.
- Primjer: robot.mousePress (InputEvent. GUMB_MASKA );
- Otpuštanje miša (): Ova se metoda koristi za otpuštanje pritisnute tipke miša.
- Primjer: robot.mouseRelease (InputEvent. GUMB_DOWN_MASKA );
Prednosti klase robota
- Učitavanje datoteka pomoću klase robota jednostavno je.
- Rukuje funkcijama tipkovnice i miša.
- Također je moguće rukovanje skočnim prozorima.
Mane klase robota
- Događaj tipkovnice ili miša funkcionirao bi samo na trenutnoj instanci prozora.
- Tijekom izvršavanja događaja robota, ako se izvršavanje koda premjesti u drugi prozor, događaj miša ili tipkovnice i dalje ostaje na prethodnom prozoru.
- Nije lako prebacivati se s različitih prozora.
Implementacija koda za prijenos datoteka pomoću klase robota:
Zbog toga ćemo razmotriti primjer Grammarly.com web stranica. Ispod je implementacijski kod za rukovanje prijenosom datoteka u Selenium pomoću klase Robot.
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); } }
Izlaz za gornji kod selena prikazan je u nastavku:
Tako se datoteke mogu prenijeti uz pomoć klase Robot, gdje možemo vidjeti upotrebu ulaznih događaja poput pritiska tipke i otpuštanja tipke za kopiranje, lijepljenje, unos itd.
Primjeri za prijenos datoteka
Pogledajmo nekoliko primjera prijenosa datoteka koji se izvode uz pomoć selena:
# 1) Gmail račun
U Gmail račun, dok e-poštom šaljete nekome, možete uključiti privitak, tj. Dokument koji može biti bilo koje vrste: dokument, tekst, csv, slika, pdf itd. Ovdje prijenos datoteka dolazi u kontekst.
Za više detalja pogledajte ispod snimke zaslona prijenosa datoteke.
# 2) Prijenos dokumenta radi provjere
Obično za stranice za registraciju ili obrasce moramo prenijeti dokumente radi provjere.
Molimo pogledajte donju sliku za više pojašnjenja:
ID_Dokaz
Reg_form
kako postaviti eclipse za c ++ -
Za razne takve provjere, poput provjere dokaza, provjere adrese, dokaza o obrazovanju itd., Potrebno je prenijeti posebne dokumente.
Zaključak
Stoga smo u ovom vodiču vidjeli prijenos datoteka na HTML stranici. Također smo vidjeli razne metode za rukovanje prijenosom datoteka u Seleniju (što uključuje metode poput upotrebe sendKeys, AutoIT i klase Robot). Također smo razumjeli implementaciju koda za rukovanje prijenosom datoteka u Seleniju za svaku od ovih metoda i na kraju smo pogledali nekoliko primjera.
Author Bio - Ovaj je članak napisao Sonali Satpute, kvalificirani B.E. (računalo) tvrtke MITCOE, Pune, profesionalni ispitivač softvera i Writer sadržaja.
=> Pročitajte cjeloviti vodič za selen
Preporučena literatura
- Kako postupati s Windowsom koji iskače u selenu pomoću AutoIT-a
- Kako odabrati radio gumbe u programu Selenium WebDriver?
- Kako s primjerima odabrati potvrdni okvir u selenu
- Vodič za krastavac selenij: Integracija Java Selenium WebDriver krastavaca
- Uvod u Selenium WebDriver - Vodič za selen br. 8
- Vodič za ChromeDriver Selenium: Testovi Selenium Webdriver-a na Chromeu
- Predavanje robota u programu Selenium WebDriver s Javom
- Vodič za AutoIt - Automatsko preuzimanje, instaliranje i osnovna skripta za AutoIt