efficient selenium scripting
У претходном упутству смо разговарали о техничким импликацијама док спроводи евидентирање у оквиру . Разговарали смо лог4ј услужни програм надугачко. Разговарали смо о основним компонентама које чине лог4ј из перспективе употребљивости. Помоћу додатака и распореда корисник може изабрати жељени формат / образац евидентирања и извор / локацију података.
У тренутном 27. водичу у овом свеобухватна бесплатна серија тренинга за селен , преусмерили бисмо фокус на неколико тривијалних а ипак важне теме то би нас водило при решавању неких понављајућих проблема. Можемо их користити или не користити за свакодневно скриптирање, али дугорочно би биле корисне.
Ми би разговарати о неким унапред дефинисаним концептима у којима бисмо се бавили догађајима миша и тастатуре, приступајући вишеструким везама применом листа . Па зашто не бисмо само започели и кратко разговарали о овим темама уз помоћ одговарајућих сценарија и фрагмената кода.
како се користи ассерт у ц ++-у
Шта ћете научити:
- Извршитељи ЈаваСцрипт-а
- Приступ вишеструким елементима на Списку
- Руковање догађајима са тастатуре и миша
- Закључак
- Препоручено читање
Извршитељи ЈаваСцрипт-а
Иако аутоматизују тест сценарио, постоје одређене радње које постају саставни део тест скрипти.
Те радње могу бити:
- Клик на дугме, хипервезу итд.
- Куцање у поље за текст
- Помичите се вертикално или хоризонтално док се жељени објекат не прикаже
- И још много тога
Сада је из ранијих водича видљиво да је најбољи начин за аутоматизацију таквих радњи коришћењем селениум наредби.
Али шта ако наредбе селена не раде?
Да, апсолутно је могуће да врло основне и елементарне наредбе селена не раде у одређеним ситуацијама.
То је рекло, да бисмо могли да решимо такву ситуацију, у обзир стављамо извршитеље ЈаваСцрипт-а.
Шта су извршитељи ЈаваСцрипт-а?
ЈавасцриптЕкецутор интерфејс је део орг.опенка.селениум и имплементира класу јава.ланг.Објецт. ЈавасцриптЕкецутор представља могућности извршавања ЈаваСцрипт-а директно у веб-прегледачу. Да би се могао извршити ЈаваСцрипт, у његовој имплементацији су обезбеђени одређени механизми у облику метода заједно са одређеним скупом параметара.
Методе
екецутеСцрипт (скрипта низа, аргументи)
Као што назив методе сугерише, извршава ЈаваСцрипт унутар тренутног прозора, упозорења, оквира итд. (Прозор на који је инстанца ВебДривер тренутно фокусирана)
екецутеАсинцСцрипт (скрипта низа, аргументи)
Као што назив методе сугерише, извршава ЈаваСцрипт унутар тренутног прозора, упозорења, оквира итд. (Прозор на који је инстанца ВебДривер тренутно фокусирана)
врхунске компаније за игре на срећу за које треба да раде
Параметри и изјава о увозу су заједнички за обе методе извршења.
Параметри
Скрипта - скрипта коју треба извршити
Аргумент - параметри које скрипта захтева за своје извршавање (ако постоје)
Изјава о увозу
Да бисмо могли да користимо ЈавасцриптЕкецуторс у нашим тест скриптама, морамо да увозимо пакет користећи следећу синтаксу:
импорт орг.опенка.селениум.ЈавасцриптЕкецутор;
Узорак кода
# 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);
Можете пронаћи разне друге начине писања кода за приступ ЈавасцриптЕкецуторс-у.
Приступ вишеструким елементима на Списку
Понекад можемо наићи на елементе истог типа као што су вишеструке хипервезе, слике итд. Поређане у уређену или неуређену листу. Стога је апсолутно логично бавити се таквим елементима једним делом кода, а то се може урадити помоћу ВебЕлемент Лист. Погледајте снимак екрана у наставку да бисте разумели елементе о којима говорим.
На горњој слици видимо да разни добављачи услуга припадају неуређеној листи. Дакле, верификација кликова и видљивости ових елемената може се извршити једним делом кода коришћењем листе елемената.
Изјава о увозу
Да бисмо могли да користимо листу ВебЕлемент у нашим тест скриптама, морамо да увежемо пакет користећи следећу синтаксу:
импорт јава.утил.Лист;
Узорак кода
// 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Постоје разни захтеви под којима се листе могу користити за верификацију елемената са одговарајућим променама у примени.
Руковање догађајима са тастатуре и миша
Руковање догађајима са тастатуре
Као што је такође раније речено, постоји н бројних начина за решавање истог проблема у различитим контекстима.
Стога се понекад јавља потреба за решавањем проблема променом конвенционалне стратегије бављења напреднијом стратегијом. Био сам сведок случајева када нисам могао да радим са упозорењима, искачућим прозорима итд. Помоћу команди селена, па сам морао да се одлучим за различите Јава програме да бих то решио помоћу потеза тастатуре и догађаја миша.
Класа робота је једна од таквих опција за извођење догађаја са тастатуре и миша.
Разумимо концепт уз помоћ сценарија и његове примене.
Сценарио:
Сакупимо ситуацију када се на екрану појави непотребан искачући прозор који не може бити прихваћен или одбачен помоћу интерфејса упозорења, па је једина мудра опција која нам преостаје затворити прозор помоћу тастерских пречица - „Алт + размакница + Ц“ . Погледајмо како затворимо искачући прозор помоћу класе робота.
Пре него што започнемо имплементацију, требало би да увеземо потребан пакет да бисмо могли да користимо класу Робот у оквиру наше тест скрипте.
Изјава о увозу
импорт јава.авт.Робот;
Узорак кода
// 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);
Класа робота такође се може користити за руковање догађајима миша, али погледајмо овде могућности селена за руковање догађајима миша.
Руковање догађајима са мишем
ВебДривер нуди широк спектар услужних програма за интеракцију које корисник може искористити за аутоматизацију догађаја миша и тастатуре. Ацтион Интерфаце је један такав услужни програм који симулира појединачне интеракције корисника.
Стога бисмо били сведоци како Ацтион Интерфаце прелази мишем на падајући мени који затим отвара листу опција у следећем сценарију.
Сценарио:
- Пређите мишем на падајући мени
- Кликните на једну од ставки у опцијама листе
Изјава о увозу
импорт орг.опенка.селениум.интерацтионс.Ацтионс;
Узорак кода
створити нови јава пројекат у ецлипсе
// 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 : За предстојеће водиче у серији разговарали бисмо о концепт тестирања базе података користећи Селениум ВебДривер . Били бисмо сведоци механизма повезивања базе података, погађања селенових упита и дохваћања резултата путем Селениум ВебДривер кода.
Препоручено читање
- Увод у Селениум ВебДривер - Водич за селен бр. 8
- Отклањање грешака у селенијевим скриптама помоћу дневника (Водич за Лог4ј) - Водич за селениум # 26
- 30+ најбољих водича за селен: научите селен на стварним примерима
- Водич за краставац селениј: Интеграција Јава Селениум ВебДривер краставца
- Како лоцирати елементе у Цхроме и ИЕ прегледачима за изградњу скрипти за селен - Водич за селен # 7
- Примена наше прве скрипте за ВебДривер - Водич бр. 10 за Селениум ВебДривер
- Целокупно подешавање и инсталирање ВебДривер-а помоћу програма Ецлипсе - Водич за селен бр. 9
- Стварање генеричких производа и тестова - Водич за селен бр. 22