how upload file using selenium webdriver 3 methods
Научете различни методи за обработка на качване на файлове в Selenium с примери за код:
Качването на файлове се извършва, когато има нужда от качване на какъвто и да е файл или документ на конкретен уебсайт като формуляри, регистрационни страници, качващи документи и т.н.
Качването на файлов процес включва разглеждане на файл от желаното местоположение или от вашия компютър и качването му на уебсайта.
=> Проверете ВСИЧКИ уроци за селен тук
Какво ще научите:
Файл за качване на селен
Предаването на качване на файлове в Selenium може да улесни човешката работа и може да се направи просто с помощта на sendKeys () метод. След качване на файл се показва съобщение, което потвърждава дали файлът се качва успешно. Има много повече такива автоматизирани методи за качване на файлове.
Темите, разгледани в този урок, включват качване на файлове в HTML, методи за обработка на качване на файлове в Selenium (което ще включва методи, а именно: използване на sendKeys, след това използване на AutoIT и клас Robot).
Този урок също обяснява внедряването на код за обработка на качване на файлове, използвайки тези методи в Selenium, след което ще видим няколко примера, когато качването на файлове се извършва с помощта на Selenium.
Качване на файл в HTML
Долната реализация на кода обяснява операцията за качване на файлове на HTML страница. HTML кодът показва как може да се извърши операцията по качване, като първо кликнете върху Изберете файл бутон, за да прегледате файла, който ще се качи, и след това щракнете върху Качи файл опция, след което можем да видим, че файлът е качен успешно.
Горното изображение се състои от HTML създадената страница, а по-долу е HTML кодът за същото. Нека да разгледаме набързо HTML кода.
File Upload File Uploading (Upload the image file)
Select file to upload:
По този начин при качване на желания файл, като щракнете върху Качи файл опция, показва се долната страница (изображение) (т.е. показва се каченият файл с изображение), което потвърждава, че избраният за качване файл е качен успешно.
[изображение източник ]
Методи за качване на файлове в селен
Нека да видим някои методи за обработка на качване на файлове, както и прилагането на код за същото.
Качването на файлове в Selenium може да се извърши със следните методи:
- Използване на метода sendKeys
- Използване на инструмента AutoIT
- С помощта на Robot Class
# 1) Използване на метода sendKeys
Най-основният начин за качване на файлове в Selenium е използването на метода sendKeys. Това е вградена функция за качване на файлове в Selenium.
Синтаксисът е както по-долу:
WebElement upload_file = driver.findElement(By.xpath('//input[@id='file_up']')); upload_file.sendKeys('C:/Users/Sonali/Desktop/upload.png');
Нека разберем изпълнението на кода за горната техника:
За качване на файлове, използващи този метод, първо трябва да проверим елемента или бутона, предвиден за качване на файлове, след това с помощта на sendKeys да прегледаме пътя, където се съхранява действителният файл за качване. Поставете пътя заедно с името на файла в sendKeys, така че програмата да бъде навигирана до споменатия път, за да извлече файла.
След това щракнете върху бутона запазване или изпращане и файлът ще бъде видян качен. Понякога получаваме и съобщение, че файлът се качва успешно.
Прилагане на код с помощта на метода sendKeys:
добри уебсайтове за гледане на аниме безплатно
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'); } }
По този начин, за качване на файлове с помощта на опцията sendKeys, ние просто трябва да използваме вградения метод sendKeys, за да качим успешно необходимия файл.
Това е изходът на горния код (за Monster.com ), където можем да видим съобщение, показвано като: „Файлът е качен успешно“ при качване на файла в селенов уеб драйвер с помощта на метода sendKeys.
# 2) Използване на AutoIT
AutoIT е безплатен софтуер и инструмент за автоматизация с отворен код за операционна система Windows. Той е написан на BASIC скриптов компютърен език за автоматизиране на потребителския интерфейс на Microsoft Windows. Той симулира всяка комбинация от натискания на клавиши, движения на мишката и манипулация на контрола на прозорци.
Стъпки за изтегляне и инсталиране на инструмента AutoIT:
- Отворете връзка
- Отидете на AUTOIT -> DOWNLOADS. Изтеглете най-новия AutoIT.
- Продължете с инсталирането и настройката на AutoIT (следващ -> съгласен -> 32/64 битов избор -> избор на местоположение на инсталацията на файл -> Край.
- Има 2 инсталационни файла: а) AutoIt версия 3 и б) SciTE автоматично 3.
- След като инсталацията приключи, отворете редактора AutoIT.
- Отидете до мястото, където се запазват инсталационните файлове, щракнете върху файла ‘SciTE.exe’ и се отваря редакторът AutoIT. Моля, вижте екранната снимка по-долу за редактора на AutoIT.
AutoIT_Editor:
Сега нека да разберем накратко как да използвам този инструмент:
- Отворете редактора AutoIT.
- Трябва да напишем прост код в редактора на AutoIT, необходим за операцията по качване на файлове (името на файла, който ще се качи, ще бъде споменато в кода).
- Сега затворете редактора и щракнете с десния бутон върху него, ще видите опцията за компилиране на скрипт. Изберете опцията за компилиране на скрипт (x64) за 64-битова машина и отидете на компилиране на скрипт (x86) за 32-битова машина.
- Веднага след приключване на горната стъпка се създава .exe файл и този файл ще бъде споменат в нашия код за затъмнение на селен. След компилация, както се вижда на изображението по-долу ‘Fileupload.exe’ файлът се създава. Сега можем да използваме този файл в скрипта за уеб драйвер на Selenium.
Запазени_файлове:
Изображението по-долу ни помага да разберем как се качва файлът за качване, който е form.csv, като се изпълнява скриптът на selenium eclipse, който изпълнява файла fileupload.exe.
>> Посетете това страница за повече подробности относно AutoIT.
Ще видим изпълнението на този метод по-късно в този урок.
Предимства на AutoIT:
- AutoIT е инструмент с отворен код, за който не е нужно да плащаме.
- Малки самостоятелни изпълними файлове могат да бъдат създадени с помощта на AutoIT.
- Той поддържа лесен за запис или възпроизвеждане скриптове.
- Можем лесно да отстраняваме грешки в кода команда за писане на конзола .
- Той има възможност да създава различни GUI и разпознава почти всички основни контроли на Windows.
- Той е прост и лесен за употреба.
Недостатъци на AutoIT:
- Работи само в операционната система Windows
- Тъй като знанията за основните принципи на кодиране са задължителни, това се оказва чудесен инструмент за професионалисти, но може да е малко сложно за начинаещи.
- AutoIT до момента не разполага с поддръжка за Java.
- Потребителите трябва да импортират отделни библиотеки, докато използват различни предварително дефинирани функции на помощната програма.
Сега нека да преминем към кода за изпълнение на Качване на файлове с помощта на AutoIT:
Тук ще видим как можем да се справим с качването на файлове с помощта на AutoIT в Selenium. За това нека разгледаме примера на уебсайта OrangeHRM.
Прилагане на код за обработка на качване на файлове в Selenium с помощта на AutoIT:
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 } }
Както се вижда в горния код, следният ред е много важен, тъй като показва използването на AutoIT:
какво е план за изпитване в qa
Runtime.getRuntime (). Exec („C: \ Потребители \ Chait \ Desktop \ autoit \ fileupload.exe“);
Тук,
- Времетраене : Позволява на скрипта да взаимодейства със средата, в която се изпълнява скриптът.
- getRuntime (): Използва се за получаване на текущото време на изпълнение, свързано с процеса.
- exec (): Той изпълнява скрипта AutoIT (тук, който е fileupload.exe).
Когато програмата изпълни този ред, тя преминава през файла fileupload.exe, където се изпълнява AutoIT кодът, както е показано по-долу:
ControlFocus('File Upload','','Edit1') ControlSetText('File Upload','','Edit1','C:UsersChaitDesktopautoitdata_file.csv') ControlClick('File Upload','','Button1')
Тук,
- ControlFocus: Този метод задава фокуса на въвеждане на текстово поле „име на файл“.
- ControlSetText: Този метод определя пътя на файла. Файлът, който ще качваме в текстовото поле „име на файла“ - пътят му е проследен.
- ControlClick: Този метод се използва за щракване върху бутона „Отваряне“ на прозореца на файла за качване.
Изходът за горния код е показан по-долу:
[изображение източник ]
# 3) С помощта на клас робот
Роботите, както познаваме, помагат при управлението на различни дейности, като например изпълнение на някои задачи, работа с функциите на клавиатурата, функциите на мишката и много други. Тук ще разберем някои функции, които са полезни при управлението на клавиатурата и мишката, докато приложението се тества с помощта Селен .
KeyEvents или методи за внедряване на клас робот
При изпълнението на клас Robot има няколко метода за изпълнение на тестови скриптове.
Те са споменати по-долу:
- Натискане на клавиш (): Този метод се извиква, когато искаме да натиснем който и да е клавиш.
-
- Пример: robot.keyPress (KeyEvent. UK_ENTER );
- KeyRelease (): Този метод се използва за освобождаване на натиснатия клавиш.
- Пример: robot.keyRelease (KeyEvent. UK_ENTER );
- MouseMove (): Използва се, когато има нужда от преместване на показалеца на мишката над координатите „X“ и „Y“.
- Пример: robot.mouseMove ( координати.get.X () , координати.get.Y () );
- MousePress (): Този метод се извиква, когато искаме да натиснем левия бутон на мишката.
- Пример: robot.mousePress (InputEvent. БУТОН_МАСКА );
- MouseRelease (): Този метод се използва за освобождаване на натиснатия бутон на мишката.
- Пример: robot.mouseRelease (InputEvent. BUTTON_DOWN_MASK );
Предимства на Robot Class
- Качването на файлове с помощта на класа робот е лесно.
- Той се справя с функциите на клавиатурата и мишката.
- Възможност за работа с изскачащи прозорци.
Недостатъци на Robot Class
- Събитието на клавиатурата или мишката ще работи само в текущия екземпляр на прозореца.
- Докато изпълнява събитие на робота, ако изпълнението на кода се премести в друг прозорец, събитието на мишката или клавиатурата все още остава в предишния прозорец.
- Не е лесно да превключвате между различни прозорци.
Внедряване на код за качване на файлове с помощта на Robot Class:
За това ще разгледаме примера на Grammarly.com уебсайт. По-долу е даден код за внедряване на обработка на качване на файлове в Selenium с помощта на клас 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); } }
Изходът за горния селен код е показан по-долу:
По този начин файловете могат да бъдат качени с помощта на клас Robot, където можем да видим използването на входни събития като натискане на клавиш и освобождаване на клавиши за копиране, поставяне, въвеждане и т.н.
Примери за качване на файлове
Нека видим няколко примера за качване на файлове, които се извършват с помощта на Selenium:
# 1) Gmail акаунт
В акаунт в Gmail, докато изпращате имейл на някого, можете да включите прикачен файл, т.е.файлов документ, който може да бъде от всякакъв тип: doc, text, csv, image, pdf и др. Тук качването на файлове влиза в контекста.
За повече подробности вижте екранна снимка на качването на файла.
# 2) Качване на документ за проверка
Обикновено за регистрационни страници или формуляри трябва да качим документи за проверка.
Моля, вижте изображението по-долу за повече разяснения:
ID_Proof
Reg_form
деклариране на масив от обекти в java
За различни такива проверки като проверка на доказателства, проверка на адрес, доказателство за образование и др. Трябва да бъдат качени конкретни документи.
Заключение
По този начин в този урок видяхме качване на файлове на HTML страницата. Виждали сме и различни методи за обработка на качване на файлове в Selenium (който включва методи като използване на sendKeys, използване на AutoIT и използване на клас Robot). Разбрахме също прилагането на код за обработка на качване на файлове в Selenium за всеки от тези методи и накрая разгледахме няколко примера.
Автор Био - Тази статия е написана от Sonali Satpute, квалифициран B.E. (Компютър) от MITCOE, Pune, Професионален софтуерен тестер и Автор на съдържание.
=> Прочетете пълното ръководство за селен
Препоръчително четене
- Как да се справя с Windows Pop Up в селен с помощта на AutoIT
- Как да избирам радио бутони в Selenium WebDriver?
- Как да изберете полето за отметка в селен с примери
- Урок за краставици селен: Интеграция на краставица Java Selenium WebDriver
- Въведение в Selenium WebDriver - Урок № 8 за селен
- Урок за ChromeDriver Selenium: Тестове на Selenium Webdriver в Chrome
- Клас робот в Selenium WebDriver с Java
- Урок за AutoIt - AutoIt Изтегляне, инсталиране и основен скрипт за AutoIt