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. Він написаний базовою комп'ютерною мовою сценаріїв для автоматизації користувацького інтерфейсу Microsoft Windows. Він імітує будь-яку комбінацію натискань клавіш, рухів миші та керування вікнами.
Кроки для завантаження та встановлення інструменту AutoIT:
що таке мережевий ключ на маршрутизаторі - -
- відчинено посилання
- Перейдіть до AUTOIT -> ЗАВАНТАЖЕННЯ. Завантажте останню версію 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.
- Він підтримує прості сценарії для запису або відтворення.
- Ми можемо легко налагодити код за допомогою команда запису консолі .
- Він має можливість створювати різні графічні інтерфейси та розпізнає майже всі основні елементи керування 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:
Runtime.getRuntime (). Exec (“C: \ Users \ 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) За допомогою класу роботів
Роботи, як ми знаємо, допомагають управляти різними видами діяльності, такими як виконання деяких завдань, обробка функцій клавіатури, функцій миші та багатьох інших. Тут ми розберемося з деякими функціями, які допомагають керувати клавіатурою та мишею під час тестування програми Селен .
Ключові події або методи реалізації класу роботів
У реалізації класу Robot існує кілька методів для виконання тестових скриптів.
Вони згадані нижче:
- KeyPress (): Цей метод викликається, коли ми хочемо натиснути будь-яку клавішу.
-
- Приклад: 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:
Для цього ми розглянемо приклад Grammarly.com веб-сайт. Нижче наведено код реалізації для обробки завантаження файлів у Selenium за допомогою класу Robot.
qa автоматизація інтерв'ю запитання та відповіді
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); } }
Вихідні дані для вищевказаного коду селену показані нижче:
Таким чином, файли можна завантажувати за допомогою класу робота, де ми можемо бачити використання подій введення, таких як натискання клавіш та відпускання клавіш для копіювання, вставлення, введення тощо.
Приклади завантаження файлів
Давайте розглянемо кілька прикладів завантаження файлів, які виконуються за допомогою Selenium:
# 1) Обліковий запис Gmail
В обліковому записі Gmail під час надсилання електронної пошти комусь ви можете включити вкладення, тобто файл, який може бути будь-якого типу: doc, text, csv, image, pdf тощо. Тут завантаження файлів входить у контекст.
Детальніше див. Нижче на скріншоті завантаження файлу.
# 2) Завантаження документа для перевірки
Зазвичай для реєстраційних сторінок або форм нам потрібно завантажувати документи для перевірки.
Будь ласка, дивіться зображення нижче, щоб отримати додаткові пояснення:
ID_Proof
Reg_form
Для різних таких перевірок, таких як перевірка доказів, перевірка адреси, доказ освіти тощо, потрібно завантажувати конкретні документи.
Висновок
Таким чином, у цьому посібнику ми бачили завантаження файлів на HTML-сторінці. Ми також бачили різні методи обробки завантажених файлів у Selenium (що включає такі методи, як використання sendKeys, використання AutoIT та використання класу Robot). Ми також зрозуміли реалізацію коду для обробки завантаження файлів у Selenium для кожного з цих методів і, нарешті, розглянули кілька прикладів.
Автор Біо - Ця стаття написана Sonali Satpute, кваліфікованим B.E. (комп’ютер) від MITCOE, Pune, Professional Software Tester та Content Writer.
=> Прочитайте повний посібник із селену
Рекомендована література
- Як обробляти спливаюче вікно Windows у селені за допомогою AutoIT
- Як вибрати радіокнопки в Selenium WebDriver?
- Як встановити прапорець у селені на прикладах
- Підручник з огірка селену: інтеграція огірка Java Selenium WebDriver
- Вступ до Selenium WebDriver - Підручник з селену №8
- Підручник із селену ChromeDriver: Тести веб-драйверів на селен у Chrome
- Робот-клас в Selenium WebDriver з Java
- Підручник з AutoIt - Автозавантаження, встановлення та базовий сценарій AutoIt