geckodriver selenium tutorial
Водич за ГецкоДривер Селениум: Научите како се користи Гецко (Марионетте) покретачки програм у селену
Да бисмо разумели шта је ГецкоДривер, у почетку морамо знати о Гецко-у и механизму веб прегледача. Овај водич покрива готово све функције повезане са ГецкоДривер-ом, пружајући вам тако потпун преглед над њим.
Дакле, за почетак, прво нам реците шта је Гецко и шта је претраживач веб прегледача?
Шта ћете научити:
- Шта је Гецко?
- Шта је механизам веб прегледача?
- Шта је ГецкоДривер?
- Зашто је селенију потребан ГецкоДривер?
- Како се користи ГецкоДривер у пројекту Селениум?
- ГецкоДривер и ТестНГ
- Кораци за додавање путање у системску променљиву окружења ПАТХ
- Проблеми без управљачког програма Гецко
- Додатне информације о ГецкоДривер
- Закључак
- Препоручено читање
Шта је Гецко?
Гецко је мотор веб прегледача. Постоји неколико апликација за које је потребан Гецко. Конкретно, апликације које су развиле Мозилла Фоундатион и Мозилла Цорпоратион. Гецко је такође потреба за многим пројектима софтвера отвореног кода. Гецко је написан на језику Ц ++ и ЈаваСцрипт.
Најновије верзије су написане и на Русту. Гецко је бесплатан покретач веб претраживача отвореног кода.
Шта је механизам веб прегледача?
Веб Бровсер Енгине није ништа друго доли софтверски програм. Главна функција овог програма је прикупљање садржаја (попут ХТМЛ-а, КСМЛ-а, слика) и форматирање података (попут ЦСС-а) и приказивање овог форматираног садржаја на екрану. Механизам веб прегледача се назива и механизам распореда или механизам за приказивање.
Апликације као што су веб прегледачи, клијенти е-поште, читачи е-књига, мрежни системи помоћи итд. Требају приказивати веб садржај. А за приказ веб садржаја потребан је механизам веб прегледача који је део свих ових апликација. Постоје различити механизми веб прегледача за сваки веб прегледач.
Следећа табела приказује веб прегледаче и које механизме веб прегледача они користе.
Гецко ради на следећем оперативном систему без емулације:
- Виндовс
- Мац ОС
- Линук
- БСД
- Уник
Не може се покретати на ОС Симбиан.
Шта је ГецкоДривер?
ГецкоДривер је веза до Фирефок претраживача за ваш рачунар скрипте у селенијуму . ГецкоДривер је прокси који помаже у комуникацији са прегледачима заснованим на Гецко (нпр. Фирефок), за које пружа ХТТП АПИ.
Зашто је селенију потребан ГецкоДривер?
Фирефок (верзија 47 и новија) је унео неке измене у њега и из неких безбедносних разлога не дозвољава ниједном независном управљачком програму да директно комуницира са прегледачима. Стога не можемо да користимо Селениум2 са најновијим верзијама Фирефок-а. Дакле, потребан нам је Селениум3.
Селениум3 има Марионетте Дривер. Селениум3 може директно да комуницира са прегледачем Фирефок користећи проки, што је ништа друго него ГецкоДривер.
Како се користи ГецкоДривер у пројекту Селениум?
- Размотримо да имате најновију верзију Селениум ВебДривер и прегледач Фирефок.
- Затим преузмите ГецкоДривер са овде . Касније одаберите верзију која одговара вашем рачунару.
- Издвој датотеке из компресоване фасцикле
- Додајте референце Селениум3 либс у свој пројекат кроз- Кликните десним тастером миша на пројекат => Стаза изградње => Конфигуриши путању градње => Библиотеке => Додај спољне јаргове.
- Изаберите Фасцикла Либ => Кликните Цлт + А => Кликните Отвори .
- После тебе кликните отворен , видећете следећи прозор:
- Затим кликните ОК.
- Сада напишимо наш код и користимо системско својство да одредимо ГецкоДривер путању.
- Додајте доњи ред у свој код:
System.setProperty(“webdriver.gecko.driver”,”Path of the GeckoDriver file”).
** ( Како копирати адресу извучене датотеке. - (Притисните тастер „Схифт“ са тастатуре и кликните десним тастером миша на датотеку, добићете опцију. Затим „Копирај адресу датотеке“.))
** ( У овој копији залепљеној путањи, уверите се да постоји двострука коса црта у супротном, коса ће иначе имати синтаксну грешку.)
Узмимо пример
Пример
Ево само једноставне скрипте, у којој отворимо Гоогле веб страницу у прегледачу Фирефок и верификујемо наслов веб странице.
Цоде1:
import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; publicclass First_Class { publicstaticvoid main(String() args) { System.setProperty('webdriver.gecko.driver','E:\GekoDriver\geckodriver-v0.15.0-win64\geckodriver.exe'); WebDriver driver=new FirefoxDriver(); driver.get('https://www.google.com/'); driver.manage().window().maximize(); String appTitle=driver.getTitle(); String expTitle='Google'; if (appTitle.equals (expTitle)){ System.out.println('Verification Successfull'); } else{ System.out.println('Verification Failed'); } driver.close(); System.exit(0); } }
Разумевање кодекса
# 1) импорт орг.опенка.селениум.ВебДривер- Овде увозимо све референце на интерфејс ВебДривер. Касније је овај ВебДривер интерфејс потребан за инстанцију новог прегледача.
# 2) импорт орг.опенка.селениум.фирефок.ФирефокДривер- Овде увозимо све референце на класу ФирефокДривер.
# 3) сетПроперти (Стринг кључ, вредност низа) - Овде постављамо системско својство давањем имена својства које се назива Кључ и његове путање које се назива Вредност.
Кључ -Наме својства система тј. вебдривер.гецко.дривер .
Вредност - Адреса еке датотеке Гецко Дривер-а.
# 4) Управљачки програм за ВебДривер = нови ФирефокДривер () - У овом реду кода креирамо референтну променљиву „управљачки програм“ ВебДривера и ова референтна променљива се покреће помоћу класе ФирефокДривер. Фирефок профил без додатака и додатака биће покренут са Фирефок инстанцом.
# 5) гет („УРЛ“) - Коришћењем ове методе Гет можемо отворити наведену УРЛ адресу у прегледачу. Ова метода Гет позива се помоћу референтне променљиве ВебДривер-а, тј. Управљачког програма. Низ се прослеђује методи Гет, што значи да се УРЛ наше апликације преноси у ову методу Гет.
# 6) манаге (). Виндов (). Макимизе () - Користећи ову линију кода максимизирамо прозор прегледача. Чим прегледач отвори наведену УРЛ адресу, она се максимизира помоћу ове линије.
# 7) гетТитле () - Користећи ову линију кода, моћи ћемо да пронађемо наслов веб странице. Овај метод се такође назива коришћењем референтне променљиве ВебДривер „управљачки програм“. Овај наслов чувамо у стринг променљивој „аппТитле“.
# 8) Поређење– Овде упоређујемо аппТитле (који ће проћи дривер.гетТитле () метода) и екпТитле (што је „Гоогле“) помоћу изјаве Иф. То је само једноставна изјава Иф-елсе. Када је задовољен услов „Ако“, исписујемо поруку „Верификација је успела“, иначе смо порука за штампу „Верификација није успела“.
if (appTitle.equals (expTitle)) { System.out.println ('Verification Successful'); } else { System.out.println('Verification Failed'); }
# 9) дривер.цлосе () - Овај ред кода затвара прегледач. Ова линија затвара само тренутни прозор.
# 10) Систем.екит (0) - Ова метода кода користи се за заустављање покретања Јава Виртуал Мацхине. Зато је препоручљиво да затворите све отворене прозоре или датотеке пре овог реда.
ГецкоДривер и ТестНГ
Нема велике разлике у коду, али овде додајем код само за вашу референцу.
ПРИМЕР:
Пређимо на пример. Наш пример је отварање веб странице Гоогле.цом, добијање њеног наслова и штампање.
Цоде2:
import org.testng.annotations.Test; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; publicclass TstNG { @Test publicvoid f() { System.setProperty('webdriver.gecko.driver','E:\GekoDriver\geckodriver-v0.15.0-win64\geckodriver.exe'); WebDriver driver=new FirefoxDriver(); driver.get('https://www.google.com/'); driver.manage().window().maximize(); String appurl=driver.getTitle(); System.out.println(appurl); driver.close(); // System.exit(0); } }
Тачке које треба упамтити током писања ТестНГ кода:
# 1) Користите методу Систем.сетПроперти (Стринг кеи, Стринг валуе) методу унутар функције ф () исто као и претходни пример. У том примеру смо то написали у главној функцији. Међутим, у ТестНГ-у не постоје главне () функције. Ако га напишете изван функције, добићете синтаксну грешку.
#два) Друга најважнија ствар коју треба запамтити је Систем.екит (0). Нема потребе за додавањем овог ретка кода у вашу ТестНГ скрипту. Постоји један разлог за то што је - након покретања ТестНГ скрипте генерише се излазна фасцикла где можете прегледати генерисане извештаје и резултат, ако додате Систем.екит (0) у своју скрипту, ова фасцикла (излазна фасцикла) генерисани и нећете моћи да прегледате извештаје.
Кораци за додавање путање у системску променљиву окружења ПАТХ
- У Виндовс систему кликните десним тастером миша на Ми Цомпутер или Тхис ПЦ.
- Изаберите Својства.
- Изаберите напредна подешавања система.
- Кликните на дугме Променљиве околине.
- Из системских променљивих изаберите ПУТ.
- Кликните на дугме Уреди.
- Кликните на дугме Ново
- Налепите путању до датотеке ГецкоДривер.
- Кликните ОК.
Проблеми без управљачког програма Гецко
Можда ћете се суочити са неким проблемима попут доле наведених.
# 1) Ако користите стару верзију Фирефок-а и Селениум3, добићете следећи изузетак:
шта је регресијско тестирање у софтверу
Изузетак у нити „маин“ јава.ланг.ИллегалСтатеЕкцептион
#два) Ако користите најновију верзију Фирефока и стару верзију Селениум, добићете следећи изузетак:
орг.опенка.селениум.фирефок.НотЦоннецтедЕкцептион : Није могуће повезати се са хостом 127.0.0.1 на порту 7055 након 45000мс
# 3) Ако користите најновију верзију Фирефок-а и ВебДривер-а, али не и ГецкоДривер, добићете следећи изузетак:
Изузетак у нити „маин“ јава.ланг.ИллегалСтатеЕкцептион: Стазу до извршне датотеке управљачког програма мора поставити системско својство вебдривер.гецко.дривер; за више информација погледајте овде .Најновију верзију можете преузети са овде .
Додатне информације о ГецкоДривер
Као што знамо, ГецкоДривер је прокси који помаже у комуникацији са претраживачима заснованим на Гецко (нпр. Фирефок), за које пружа ХТТП АПИ.
Овај ХТТП АПИ може се разумети помоћу протокола ВебДривер. Постоје неки чворови у протоколу ВебДривер који укључују локални крај, удаљени крај, чвор посредника и чвор крајње тачке. Комуникација између ових чворова описана је у протоколу ВебДривер.
Локални крај је клијентска страна протокола ВебДривер. Удаљени крај значи сервер страна протокола ВебДривер. Чвор посредника врши улогу проксија. Чвор крајње тачке активира кориснички агент или сличан програм.
Команде и одговори које ВебДривер шаље ГецкоДривер-у преводе се у Марионетте Протоцол, а затим их ГецкоДривер преносе у Марионетте Дривер. Дакле, закључујемо рекавши да ГецкоДривер делује као посредник између ова два ВебДривера и Марионете.
Марионет је подељен на 2 дела, а то су серверски и клијентски део. Наредбе које шаље клијентски део извршава се серверским делом.
Ово извршавање наредби врши се у прегледачу. Марионетте није ништа друго до комбинација гецко компоненте (која је Марионет сервер) и спољне компоненте (која се назива Марионет клијент). ГецкоДривер је написан на програмском језику Руст.
Закључак
ГецкоДривер је посредни фактор између ваших Селениум скрипти и прегледача заснованих на Гецко-у, попут Фирефока.
ГецкоДривер је прокси за комуникацију са прегледачима заснованим на Гецко ( На пример. Фирефок). Фирефок (верзија47 и новија) је унео неке промене, што је довело до спречавања подршке независним управљачким програмима за директну интеракцију са прегледачима.
Ово је примарни разлог због којег морамо да користимо ГецкоДривер. Најлакши начин да користите ГецкоДривер у својој скрипти је да примените употребу Својство Систем.сет. (Систем.сетПроперти („вебдривер.гецко.дривер“, „Пут до датотеке Гецко Дривер-а“)).
Да ли сте нови у ГецкоДривер-у? Јесте ли научили нешто ново данас у овом ГецкоДривер Селениум-у? Или имате нешто занимљиво са нама о ГецкоДривер-у? Слободно изразите своје мисли у одељку за коментаре испод.
Препоручено читање
- Водич за краставац селениј: Интеграција Јава Селениум ВебДривер краставца
- Увод у Селениум ВебДривер - Водич за селен бр. 8
- Водич за текст помоћу примера у тексту за проналажење селена
- Примена наше прве скрипте за ВебДривер - Водич бр. 10 за Селениум ВебДривер
- Како се рукује упозорењима / искачућим прозорима у програму Селениум ВебДривер - Водич за селен # 16
- Целокупно подешавање и инсталирање ВебДривер-а помоћу Ецлипсе - Водич за селен бр. 9
- Дубински водичи за помрачење за почетнике
- Ефикасни сценарији за скриптирање и решавање проблема са селенијем - Водич за селениј # 27