how upload file using selenium webdriver 3 methods
Научите различите методе за руковање отпремањем датотека у селенијуму са примерима кода:
Отпремање датотека врши се када постоји потреба за отпремањем било које датотеке или документа на одређену веб локацију, као што су обрасци, странице за регистрацију, отпремачи докумената итд.
Отпремање датотеке укључује поступак прегледавања датотеке са жељене локације или са рачунара и отпремање на веб локацију.
=> Овде погледајте СВЕ туторијале о селену
Шта ћете научити:
Датотека за отпремање селена
Предаја датотека у Селениум може олакшати људски рад и може се једноставно извршити помоћу сендКеис () метода. Након отпремања датотеке приказује се порука која потврђује да ли се датотека успешно отпрема. Постоји много више таквих метода аутоматизације за отпремање датотека.
Теме обухваћене овим упутством укључују отпремање датотека у ХТМЛ-у, методе за руковање отпремањем датотека у програму Селениум (које би укључивале методе, наиме: коришћење сендКеис, затим коришћење класе АутоИТ и Робот).
Овај водич такође објашњава примену кода за руковање отпремањем датотека помоћу ових метода у програму Селениум, након чега ћемо видети неколико примера где се отпремање датотека врши уз помоћ програма Селениум.
Отпремање датотеке у ХТМЛ-у
Следећа примена кода објашњава поступак отпремања датотека на ХТМЛ страницу. ХТМЛ код показује како се операција отпремања може извршити тако што ћете прво кликнути на Одаберите датотеку дугме да бисте прегледали датотеку која се отпрема, а затим кликните на Отпреми датотеку опција, након чега можемо видети да је датотека успешно отпремљена.
Горња слика се састоји од ХТМЛ креиране странице, а испод је ХТМЛ код за исту. Кратко ћемо погледати ХТМЛ код.
File Upload File Uploading (Upload the image file)
Select file to upload:
Тако при отпремању жељене датотеке кликом на Отпреми датотеку опција, приказује се доња страница (слика) (тј. приказује се отпремљена датотека слике) која потврђује да је датотека изабрана за отпремање успешно постављена.
(слика извор )
Методе за отпремање датотека у селену
Погледајмо неке методе за руковање отпремањем датотека, као и имплементацију кода за исти.
Отпремање датотека у Селениум може се извршити помоћу следећих метода:
- Коришћење методе сендКеис
- Коришћење алата АутоИТ
- Уз помоћ класе робота
# 1) Коришћење методе сендКеис
Најосновнији начин отпремања датотека у Селениум је коришћење методе сендКеис. То је уграђена функција за отпремање датотека у Селениум.
Синтакса је као у наставку:
WebElement upload_file = driver.findElement(By.xpath('//input(@id='file_up')')); upload_file.sendKeys('C:/Users/Sonali/Desktop/upload.png');
Хајде да разумемо имплементацију кода за горњу технику:
За отпремање датотека помоћу ове методе, прво морамо да прегледамо елемент или дугме предвиђено за отпремање датотека, а затим помоћу сендКеис претражимо путању на којој се чува стварна датотека за отпремање. Ставите путању заједно са именом датотеке у сендКеис тако да програм пређе на поменуту путању да би преузео датотеку.
Након тога кликните на дугме сачувај или пошаљи и датотека ће се видети отпремљена. Понекад примамо и поруку да се датотека успешно отпрема.
Имплементација кода помоћу методе сендКеис:
алфа и бета тестирање у софтверском инжењерству
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'); } }
Дакле, за отпремање датотека помоћу опције сендКеис, једноставно морамо да користимо уграђену методу сендКеис да бисмо успешно учитали тражену датотеку.
Ово је излаз горњег кода (за Монстер.цом ) где можемо видети поруку која се приказује као: „Датотека је успешно отпремљена“ о отпремању датотеке у селенски веб управљачки програм методом сендКеис.
# 2) Коришћење АутоИТ-а
АутоИТ је бесплатни програм и алат за аутоматизацију отвореног кода за оперативни систем Виндовс. Написан је на ОСНОВНОМ скриптном рачунарском језику за аутоматизацију корисничког интерфејса Мицрософт Виндовс. Симулира било коју комбинацију притиска тастера, кретања миша и манипулације Виндовс контролом.
Кораци за преузимање и инсталирање алата АутоИТ:
- Отвори линк
- Идите на АУТОИТ -> ДОВНЛОАДС. Преузмите најновији АутоИТ.
- Наставите са инсталацијом и подешавањем АутоИТ-а (следеће -> слажем се -> 32/64 битни избор -> избор локације за инсталацију датотеке -> Заврши.
- Постоје 2 датотеке за подешавање: а) АутоИт верзија 3 и б) СциТЕ ауто 3.
- По завршетку инсталације отворите АутоИТ едитор.
- Идите на место где се чувају датотеке за подешавање, кликните на датотеку „СциТЕ.еке“ и отвориће се уређивач АутоИТ. Погледајте доњи снимак екрана за АутоИТ едитор.
АутоИТ_Едитор:
Хајде сада да схватимо укратко како се користи овај алат:
- Отворите уређивач АутоИТ.
- Морамо да напишемо једноставан код у АутоИТ едитору, потребан за операцију отпремања датотека (назив датотеке која се отпрема биће наведено у коду).
- Сада затворите едитор и кликните десним тастером миша, видећете опцију компајлирања скрипте. Изаберите опцију компајлирања скрипте (к64) за 64-битну машину и идите са скриптом компајлирања (к86) за 32-битну машину.
- Чим је горњи корак завршен, креира се .еке датотека и она ће бити наведена у нашем коду за помрачење селена. После компилације, као што се види на доњој слици „Филеуплоад.еке“ датотека се креира. Сада ову датотеку можемо да користимо у скрипти веб покретачког програма Селениум.
Сачуване датотеке:
ц ++ цхар * у инт
Слика испод нам помаже да схватимо како се датотека која се отпрема, а то је форм.цсв, отпрема извршењем скрипте за селениум ецлипсе која покреће датотеку филеуплоад.еке.
>> Посетите ово страна за више детаља о АутоИТ-у.
Примену ове методе видећемо касније у овом упутству.
Предности АутоИТ-а:
- АутоИТ је алат отвореног кода за који не морамо да плаћамо.
- Мали самостални извршни програми могу се креирати помоћу АутоИТ-а.
- Подржава лако снимање или репродукцију скриптирања.
- Код можемо лако отклонити команда за писање конзоле .
- Има могућност креирања различитих ГУИ-а и препознаје готово све основне Виндовс контроле.
- Једноставан је и лак за употребу.
Мане АутоИТ-а:
- Ради само у оперативном систему Виндовс
- Како је знање о основним принципима кодирања неопходно, показало се одличним алатом за професионалце, али за почетнике може бити мало компликовано.
- АутоИТ засад нема доступну подршку за Јава.
- Корисници морају да увезу одвојене библиотеке док користе различите унапред дефинисане корисне функције.
Сада, пређимо на имплементациони код Отпремања датотека помоћу АутоИТ-а:
Овде ћемо видети како се можемо носити са отпремањем датотека користећи АутоИТ у програму Селениум. За ово, размотримо пример ОрангеХРМ веб странице.
Имплементација кода за руковање отпремањем датотека у селенијуму помоћу АутоИТ-а:
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 } }
Као што се види у горњем коду, следећи ред је веома важан јер приказује употребу АутоИТ-а:
Рунтиме.гетРунтиме (). Екец („Ц: \ Усерс \ Цхаит \ Десктоп \ аутоит \ филеуплоад.еке“);
Ево,
- Рунтиме : Омогућава скрипти да се повеже са окружењем у којем скрипта ради.
- гетРунтиме (): Користи се за добијање тренутног времена извршавања повезаног са процесом.
- екец (): Извршава скрипту АутоИТ (овде датотека филеуплоад.еке).
Када програм изврши ову линију, он пролази кроз датотеку филеуплоад.еке где се извршава АутоИТ код као што је приказано доле:
ControlFocus('File Upload','','Edit1') ControlSetText('File Upload','','Edit1','C:UsersChaitDesktopautoitdata_file.csv') ControlClick('File Upload','','Button1')
Ево,
- ЦонтролФоцус: Ова метода поставља фокус уноса на оквир за текст „име датотеке“.
- ЦонтролСетТект: Ова метода дефинише путању датотеке. Датотека коју ћемо учитати у оквир за текст „име датотеке“ - прати се њен пут.
- ЦонтролЦлицк: Овај метод се користи за клик на дугме „Отвори“ у прозору за отпремање датотека.
Излаз за горњи код је приказан испод:
(слика извор )
# 3) Уз помоћ класе робота
Роботи као што знамо помажу у управљању разним активностима као што су извршавање неких задатака, руковање функцијама тастатуре, мишем и многим другим. Овде ћемо разумети одређене функције које су корисне у контроли тастатуре и миша док се апликација тестира помоћу Селен .
Кључни догађаји или методе за примену класе робота
У имплементацији класе Робот постоји неколико метода за извршавање тест скрипти.
Они су наведени у наставку:
- Притисак дугмета(): Ова метода се позива када желимо да притиснемо било који тастер.
-
- Пример: робот.кеиПресс (КеиЕвент. УК_ЕНТЕР );
- КеиРелеасе (): Ова метода се користи за отпуштање притиснутог тастера.
- Пример: робот.кеиРелеасе (КеиЕвент. УК_ЕНТЕР );
- МоусеМове (): Користи се када је потребно померити показивач миша преко координата „Кс“ и „И“.
- Пример: робот.моусеМове ( координате.гет.Кс () , координате.гет.И () );
- МоусеПресс (): Ова метода се позива када желимо да притиснемо леви тастер миша.
- Пример: робот.моусеПресс (ИнпутЕвент. БУТТОН_МАСК );
- МоусеРелеасе (): Ова метода се користи за отпуштање притиснутог дугмета миша.
- Пример: робот.моусеРелеасе (ИнпутЕвент. БУТТОН_ДОВН_МАСК );
Предности класе робота
- Отпремање датотека коришћењем класе робота је једноставно.
- Управља функцијама тастатуре и миша.
- Такође је могуће руковање искачућим прозорима.
Мане класе робота
- Догађаји на тастатури или мишу радили би само на тренутној инстанци прозора.
- Током извршавања догађаја робота, ако је извршавање кода премештено у други прозор, догађај миша или тастатуре и даље остаје на претходном прозору.
- Није лако пребацивати се између различитих прозора.
Имплементација кода за отпремање датотека помоћу класе Робот:
За ово ћемо размотрити пример Граммарли.цом веб сајт. Испод је имплементациони код за руковање отпремањем датотека у Селенијуму помоћу класе Робот.
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); } }
Излаз за горњи селенов код је приказан испод:
Тако се датотеке могу отпремити уз помоћ класе Робот, где можемо видети употребу улазних догађаја попут притиска тастера и отпуштања тастера за копирање, лепљење, унос итд.
Примери за отпремање датотека
Погледајмо неколико примера отпремања датотека које се изводе уз помоћ селена:
# 1) Гмаил налог
како отворити бин датотеке на Виндовс 8
У Гмаил налог, док некога шаљете е-поштом, можете да укључите прилог, тј. Документ који може бити било које врсте: документ, текст, цсв, слика, пдф итд. Отпремање датотека долази у контекст.
За више детаља погледајте испод снимка екрана отпремања датотеке.
# 2) Отпремање документа ради верификације
Обично за странице за регистрацију или обрасце морамо да отпремимо документе ради верификације.
Молимо погледајте доњу слику за више објашњења:
ИД_Доказ
Рег_форм
За разне такве верификације, као што су верификација доказа, верификација адресе, доказ о образовању итд., Потребно је учитати одређене документе.
Закључак
Стога смо у овом упутству видели отпремање датотека на ХТМЛ страници. Такође смо видели разне методе за руковање отпремањем датотека у програму Селениум (које укључују методе попут употребе сендКеис, АутоИТ и класе Робот). Такође смо разумели примену кода за руковање отпремањем датотека у Селенијуму за сваку од ових метода и на крају смо погледали неколико примера.
Аутор Био - Овај чланак написао је Сонали Сатпуте, квалификовани Б.Е. (рачунар) из МИТЦОЕ, Пуне, Профессионал Софтваре Тестер и Цонтент Вритер.
=> Прочитајте комплетан водич за селен
Препоручено читање
- Како се рукује искачућим прозорима Виндовс-а у селену помоћу АутоИТ-а
- Како одабрати радио дугмад у програму Селениум ВебДривер?
- Како потврдити поље за потврду у селену са примерима
- Водич за краставац селенијум: Интеграција Јава Селениум ВебДривер краставца
- Увод у Селениум ВебДривер - Водич за селен бр. 8
- Водич за ЦхромеДривер Селениум: Тестови Селениум Вебдривер-а на Цхроме-у
- Класа робота у програму Селениум ВебДривер са Јавом
- Водич за АутоИт - Аутоматско преузимање, инсталирање и основна скрипта за АутоИт