efficient selenium scripting
В предишния урок обсъдихме техническите последици докато прилагате регистриране в рамка . Ние обсъдихме log4j помощна програма надълго и нашироко. Обсъдихме основните компоненти, които съставляват log4j от гледна точка на използваемостта. С добавките и оформленията потребителят може да избере желания формат / модел на регистриране и източника / местоположението на данните.
В настоящия 27-ми урок в това изчерпателна безплатна онлайн серийна серия за обучение , бихме изместили фокуса си към няколко тривиални но важни теми това би ни насочило към отстраняването на някои повтарящи се проблеми. Можем или не да ги използваме при ежедневни скриптове, но те биха били полезни в дългосрочен план.
Бихме обсъдете някои предварителни концепции, при които бихме се справили със събития на мишката и клавиатурата, като имаме достъп до множество връзки чрез прилагане на списъци . Така че защо да не започнем и да обсъдим накратко тези теми с помощта на подходящи сценарии и кодови фрагменти.
php интервю въпрос и отговор за опит
Какво ще научите:
- Изпълнители на JavaScript
- Достъп до множество елементи в списък
- Работа със събития от клавиатура и мишка
- Заключение
- Препоръчително четене
Изпълнители на JavaScript
Докато автоматизирате тестов сценарий, има определени действия, които стават неразделна част от тестовите скриптове.
Тези действия могат да бъдат:
- Щракване върху бутон, хипервръзка и т.н.
- Въвеждане в текстово поле
- Превъртане вертикално или хоризонтално, докато се покаже желаният обект
- И още много
От предишните уроци е видно, че най-добрият начин за автоматизиране на подобни действия е използването на команди Selenium.
Но какво, ако командите на селен не работят?
Да, напълно възможно е, че много елементарните и елементарни команди на Selenium не работят в определени ситуации.
Въпреки това, за да можем да отстраним такава ситуация, ние включваме изпълнителите на JavaScript в картината.
Какво представляват изпълнителите на JavaScript?
Интерфейсът на JavascriptExecutor е част от org.openqa.selenium и реализира клас java.lang.Object. JavascriptExecutor представя възможностите за изпълнение на JavaScript директно в уеб браузъра. За да може да се изпълни JavaScript, при изпълнението му са предвидени определени механизми под формата на методи, заедно със специфичен набор от параметри.
Методи
executeScript (низ скрипт, аргументи)
Както подсказва името на метода, той изпълнява JavaScript в рамките на текущия прозорец, предупреждение, рамка и т.н. (прозорецът, върху който в момента е фокусиран екземпляр WebDriver)
executeAsyncScript (низ скрипт, аргументи)
Както подсказва името на метода, той изпълнява JavaScript в рамките на текущия прозорец, предупреждение, рамка и т.н. (прозорецът, върху който в момента е фокусиран екземпляр WebDriver)
Параметрите и инструкцията за импортиране са общи за двата метода на изпълнителя.
Параметри
Script - скриптът, който трябва да се изпълни
Аргумент - параметрите, които скриптът изисква за изпълнението си (ако има такива)
Декларация за внос
За да можем да използваме JavascriptExecutors в нашите тестови скриптове, трябва да импортираме пакета, като използваме следния синтаксис:
импортиране на org.openqa.selenium.JavascriptExecutor;
Примерен код
# 1) Кликване върху уеб елемент
// Locating the web element using id WebElement element = driver.findElement(By.id('id of the webelement')); // Instantiating JavascriptExecutor JavascriptExecutor js = (JavascriptExecutor)driver; // Clicking the web element js.executeScript('arguments(0).click();', element);
# 2) Въвеждане в текстово поле
// Instantiating JavascriptExecutor JavascriptExecutor js = (JavascriptExecutor)driver; // Typing the test data into Textbox js.executeScript('document.getElementById(‘id of the element’).value=’test data’;”);
# 3) Превъртане надолу, докато уеб елементът се появи в изгледа
WebElement element=driver.findElement(By.xpath('//input(contains(@value,'Save'))')); // Instantiating the javascriptExecutor and scrolling into the view in the single test step ((JavascriptExecutor)driver).executeScript('arguments(0).scrollIntoView(true);',element);
Можете да намерите различни други начини за писане на кода за достъп до JavascriptExecutors.
Достъп до множество елементи в списък
Понякога може да срещнем елементи от един и същи тип като множество хипервръзки, изображения и т.н., подредени в подреден или неподреден списък. По този начин има абсолютен смисъл да се борим с такива елементи с един парче код и това може да се направи с помощта на WebElement List. Вижте екранната снимка по-долу, за да разберете елементите, за които говоря.
На горното изображение виждаме, че различните доставчици на услуги принадлежат към неподреден списък. По този начин, проверката на възможността за кликване и видимостта на тези елементи може да се извърши чрез единична част от кода, като се използва списък с елементи.
Декларация за внос
За да можем да използваме списък WebElement в нашите тестови скриптове, трябва да импортираме пакета, като използваме следния синтаксис:
импортиране на java.util.List;
Примерен код
най-доброто шпионско приложение за android
// Storing the list List serviceProviderLinks = driver.findElements(By.xpath('//div(@id='ServiceProvider')//ul//li')); // Fetching the size of the list int listSize = serviceProviderLinks.size(); for (int i=0; iСъществуват различни изисквания, при които списъците могат да се използват за проверка на елементите с подходящи промени в изпълнението.
Работа със събития от клавиатура и мишка
Работа с клавиатурни събития
Както също беше казано по-рано, има n броя начини за справяне с едно и също твърдение на проблема в различни контексти.
По този начин понякога възниква необходимост от справяне с даден проблем чрез промяна на конвенционалната стратегия за работа с по-напреднала стратегия. Бил съм свидетел на случаи, в които не можех да се справя с предупреждения и да изскачам и т.н. чрез селенови команди, поради което трябваше да избера различни помощни програми на Java, за да се справя с тях, използвайки удари на клавиатура и събития на мишката.
Класът робот е една такава опция за извършване на събития от клавиатурата и събития с мишката.
Нека разберем концепцията с помощта на сценарий и неговото изпълнение.
Сценарий:
Нека да съберем ситуация, при която на екрана се появява ненужен изскачащ прозорец, който не може да бъде приет или отхвърлен с помощта на интерфейс за предупреждение, така че единствената разумна опция, която ни остава, е да затворим прозореца с клавишни комбинации - „Alt + интервал + C“ . Нека видим как затваряме изскачащия прозорец, използвайки Robot Class.
Преди да започнем внедряването, трябва да импортираме необходимия пакет, за да можем да използваме класа Robot в рамките на нашия тестов скрипт.
Декларация за внос
импортиране на java.awt.Robot;
Примерен код
// Instantiating Robot class Robot rb =new Robot(); // Calling KeyPress event rb.keyPress(KeyEvent.VK_ALT); rb.keyPress(KeyEvent.VK_SPACE); rb.keyPress(KeyEvent.VK_C); // Calling KeyRelease event rb.keyRelease(KeyEvent.VK_C); rb.keyRelease(KeyEvent.VK_SPACE); rb.keyRelease(KeyEvent.VK_ALT);
Класът робот също може да се използва за обработка на събития с мишката, но нека разгледаме тук възможностите на селена за обработка на събития с мишката.
Работа със събития с мишка
WebDriver предлага широка гама от помощни програми за взаимодействие, които потребителят може да използва за автоматизиране на събития на мишката и клавиатурата. Action Interface е една такава програма, която симулира взаимодействията на един потребител.
По този начин ще станем свидетели на Action Interface, за да задържите курсора на мишката при падащо меню, което след това отваря списък с опции в следващия сценарий.
Сценарий:
- Задръжте курсора на мишката върху падащото меню
- Щракнете върху един от елементите в списъка с опции
Декларация за внос
внос org.openqa.selenium.interactions.Actions;
Примерен код
инструменти за уеб администратори на Google
// Instantiating Action Interface Actions actions= new Actions(driver); // howering on the dropdown actions.moveToElement(driver.findElement(By. id ('id of the dropdown'))).perform(); // Clicking on one of the items in the list options WebElement subLinkOption=driver.findElement(By.id('id of the sub link')); subLinkOption.click();
Заключение
В този урок обсъдихме някои разширени теми, свързани с ефективни скриптове и за отстраняване на неизправности при сценарии, при които потребителят трябва да обработва събития на мишката и клавиатурата. Също така обсъдихме как да съхраняваме повече от един уеб елемент в списък. Надявам се, че ще успеете да отстраните тези пречки, ако се сблъскате.
Следващ урок # 28 : За предстоящия урок от поредицата бихме обсъдили концепция за тестване на база данни с помощта на Selenium WebDriver . Ще станем свидетели на механизма на свързване на база данни, удряне на запитвания за селен и извличане на резултатите чрез кода на Selenium WebDriver.
Препоръчително четене
- Въведение в Selenium WebDriver - Урок № 8 за селен
- Отстраняване на грешки в скриптове за селен с регистрационни файлове (Урок за Log4j) - Урок за селен # 26
- 30+ най-добри урока за селен: Научете селен с реални примери
- Урок за краставици селен: Интеграция на краставица Java Selenium WebDriver
- Как да намерим елементи в браузърите Chrome и IE за изграждане на скриптове за селен - Урок № 7 за селен
- Внедряване на нашия първи скрипт за WebDriver - Урок № 10 за Selenium WebDriver
- Цялата настройка и инсталиране на WebDriver с Eclipse - Урок № 9 за селен
- Създаване на генерични лекарства и тестове - Урок №22 за селен