Шта су Локатори?
Лоцатор је наредба која говори Селениум ИДЕ-у који елементи ГУИ-ја (рецимо оквир за текст, дугмад, поља за потврду итд.) Требају да раде на њему. Идентификација исправних ГУИ елемената је предуслов за стварање скрипте за аутоматизацију. Али тачна идентификација ГУИ елемената је тежа него што звучи. Понекад на крају радите са нетачним ГУИ елементима или их уопште нема! Дакле, Селениум пружа бројне Локаторе за прецизно лоцирање ГУИ елементаРазличити типови ЦСС локатора у ИДЕ-у Селениум
Постоје наредбе којима није потребан локатор (попут наредбе „отвори“). Међутим, већини њих су потребни локатори елемената у веб селектору Селениум.
Избор локатора у великој мери зависи од ваше апликације која се тестира . У овом упутству ћемо се пребацивати између Фацебоок-а, нових тоурс.демоаут на основу локатора које ове апликације подржавају. Слично томе, у вашем пројекту тестирања, изабраћете било који од горе наведених локатора елемената у програму Селениум вебдривер, на основу подршке за вашу апликацију.
Лоцирање према личној карти
Ово је најчешћи начин лоцирања елемената, јер би ИД-ови требали бити јединствени за сваки елемент.
Циљни формат: ид = ид елемента
У овом примеру ћемо користити Фацебоок као тест апликацију јер Мерцури Тоурс не користи ИД атрибуте.
Корак 1. Откако је креиран овај водич, Фацебоок је променио дизајн странице за пријаву. Користите ову демо страницу хттп://демо.гуру99.цом/тест/фацебоок.хтмл за тестирање. Прегледајте поље за текст „Е-пошта или телефон“ помоћу Фиребуга и забележите његов ИД. У овом случају, ИД је „е-пошта“.
Корак 2. Покрените Селениум ИДЕ и унесите "ид = емаил" у поље Таргет. Кликните на дугме Пронађи и приметите да се оквир за текст „Е-пошта или телефон“ истиче жутом бојом и обрубљује зеленом бојом, што значи да је Селениум ИДЕ успео да тачно пронађе тај елемент.
Лоцирање по имену
Лоцирање елемената по имену врло је слично лоцирању према ИД-у, осим што уместо тога користимо префикс „наме =“ .
Циљни формат: име = име елемента
У следећој демонстрацији сада ћемо користити Мерцури Тоурс јер сви значајни елементи имају имена.
Корак 1. Идите на хттп://демо.гуру99.цом/тест/невтоурс/ и користите Фиребуг да бисте прегледали оквир за текст „Корисничко име“. Забележите његов атрибут имена.
Овде видимо да је име елемента „усерНаме“.
Корак 2. У селениум ИДЕ унесите "наме = усерНаме" у поље Таргет и кликните на дугме Финд. Селениум ИДЕ треба да буде у могућности да пронађе поље за текст Корисничко име тако што ће га означити.
Проналажење по имену помоћу филтера
Филтери се могу користити када више елемената има исто име. Филтери су додатни атрибути који се користе за разликовање истоимених елемената.
Циљни формат : наме = наме_оф_тхе_елемент филтер = валуе_оф_филтер
Погледајмо пример -
Корак 1 . Пријавите се на Мерцури Тоурс користећи „туториал“ као корисничко име и лозинку. Требало би да вас одведе на доле приказану страницу Флигхт Финдер.
Корак 2. Користећи Фиребуг, приметите да радио дугмад за повратно путовање и једносмерно путовање имају исти назив „тип путовања“. Међутим, они имају различите вредности ВАЛУЕ, тако да можемо да користимо сваки од њих као наш филтер.
3. корак
- Прво ћемо приступити радио дугмету Оне Ваи. Кликните на први ред у програму Едитор.
- У командно поље Селениум ИДЕ унесите наредбу „клик“.
- У поље Циљ унесите „наме = трипТипе валуе = оневаи“. Део „валуе = оневаи“ је наш филтер.
Корак 4 . Кликните на дугме Пронађи и приметите да је Селениум ИДЕ у стању да означи Оне Ваи радио дугме зеленом бојом - што значи да можемо да приступимо елементу успешно користећи његов атрибут ВАЛУЕ.
Корак 5. Притисните тастер „Кс“ на тастатури да бисте извршили ову наредбу клика. Приметите да је изабрано дугме Оне Ваи.
Потпуно исту ствар можете учинити помоћу радио дугмета за повратно путовање, овог пута користећи циљ „наме = трипТипе валуе = роундтрип“.
Лоцирање према тексту везе
Овај тип ЦСС локатора у селенијуму односи се само на текстове хипервеза. Вези приступамо префиксом циља са „линк =“, а затим следи текст хипервезе.
Циљни формат : линк = линк_тект
У овом примеру ћемо приступити линку „РЕГИСТРУЈТЕ“ који се налази на почетној страници Мерцури Тоурс-а.
Корак 1.
- Прво проверите да ли сте одјављени са Мерцури Тоурс-а.
- Идите на почетну страницу Мерцури Тоурс.
Корак 2 .
- Помоћу Фиребуга прегледајте везу „РЕГИСТРУЈ СЕ“. Текст везе налази се између и ознака.
- У овом случају, текст везе је „РЕГИСТРУЈ СЕ“. Копирајте текст везе.
Корак 3 . Копирајте текст везе у Фиребуг и налепите га у оквир за циљање Селениум ИДЕ. Префиксирајте га са "линк =".
Корак 4. Кликните на дугме Пронађи и приметите да је Селениум ИДЕ могао правилно да истакне везу РЕГИСТРУЈ.
Корак 5. Да бисте даље проверили, у поље „Команда“ унесите „цлицкАндВаит“ и извршите га. Селениум ИДЕ би требало да може успешно да кликне на ту везу РЕГИСТРУЈУ и одведе вас на страницу за регистрацију приказану испод.
Лоцирање помоћу ЦСС Селецтор-а
ЦСС селектори у селенијуму су обрасци низа који се користе за идентификацију елемента на основу комбинације ХТМЛ ознаке, ид-а, класе и атрибута. Лоцирање помоћу ЦСС селектора у Селенију је компликованије од претходних метода, али је најчешћа стратегија лоцирања напредних корисника Селениум-а јер може да приступи чак и оним елементима који немају ИД или име.
ЦСС Селектори у Селенијуму имају много формата, али ми ћемо се фокусирати само на оне најчешће.
- Ознака и ИД
- Ознака и класа
- Ознака и атрибут
- Ознака, класа и атрибут
- Унутарњи текст
Када користимо ову стратегију, увек префиксу Таргет стављамо префикс са "цсс =", као што ће бити приказано у следећим примерима.
Лоцирање помоћу ЦСС Селецтор - Ознака и ИД
Поново ћемо у овом примеру користити Фацебоок текстуални оквир за е-пошту. Као што се сећате, има ИД „имејл“, а већ смо му приступили у одељку „Лоцирање према ИД-у“. Овог пута ћемо користити Селениум ЦСС Селецтор са ИД-ом за приступ том истом елементу.
Синтакса |
Опис |
---|---|
цсс = таг # ид |
|
Имајте на уму да ИД-у увек претходи знак хеширања (#).
Корак 1. Идите на ввв.фацебоок.цом. Користећи Фиребуг, прегледајте оквир за текст „Е-пошта или телефон“.
У овом тренутку узмите у обзир да је ХТМЛ ознака „инпут“, а њен ИД „емаил“. Дакле, наша синтакса ће бити "цсс = инпут # емаил".
Корак 2. Унесите "цсс = инпут # емаил" у поље Таргет у програму Селениум ИДЕ и кликните на дугме Пронађи. Селениум ИДЕ треба да буде у стању да истакне тај елемент.
Лоцирање помоћу ЦСС селектора - ознаке и класе
Лоцирање помоћу ЦСС Селецтор-а у Селенијуму помоћу ХТМЛ ознаке и назива класе слично је коришћењу ознаке и ИД-а, али у овом случају се уместо знака хеширања користи тачка (.).
Синтакса |
Опис |
---|---|
цсс = ознака. класа |
|
Корак 1. Идите на демо страницу хттп://демо.гуру99.цом/тест/фацебоок.хтмл и користите Фиребуг да бисте прегледали поље за текст „Е-пошта или телефон“. Приметите да је његова ХТМЛ ознака „инпут“, а класа „инпуттект“.
Корак 2. У селениум ИДЕ унесите "цсс = инпут.инпуттект" у поље Таргет и кликните на Финд. Селениум ИДЕ треба да буде у стању да препозна оквир за текст е-поште или телефона.
Имајте на уму да када више елемената има исту ХТМЛ ознаку и име, препознаће се само први елемент у изворном коду . Користећи Фиребуг, прегледајте оквир за текст лозинке на Фацебооку и приметите да има исто име као оквир за текст е-поште или телефона.
Разлог зашто је на претходној илустрацији истакнут само оквир за текст Е-пошта или Телефон је тај што је на првом месту у извору Фацебоок странице.
Лоцирање помоћу ЦСС селектора - ознака и атрибут
Ова стратегија користи ХТМЛ ознаку и одређени атрибут елемента којем треба приступити.
Синтакса |
Опис |
---|---|
цсс = ознака [атрибут = вредност] |
|
Корак 1. Идите на страницу за регистрацију компаније Мерцури Тоурс (хттп://демо.гуру99.цом/тест/невтоурс/регистер.пхп) и прегледајте поље за текст „Презиме“. Забележите његову ХТМЛ ознаку (у овом случају „инпут“) и њено име („ластНаме“).
Корак 2. У Селениум ИДЕ унесите "цсс = инпут [наме = ластНаме]" у поље Таргет и кликните на Финд. Селениум ИДЕ би требало да може успешно да приступи оквиру „Презиме“.
Када више елемената има исту ХТМЛ ознаку и атрибут, препознаће се само први . Ово понашање је слично лоцирању елемената помоћу ЦСС селектора са истом ознаком и класом.
Лоцирање помоћу ЦСС Селецтор - ознаке, класе и атрибута
Синтакса | Опис |
---|---|
цсс = таг.цласс [атрибут = вредност] |
|
Корак 1. Идите на демо страницу хттп://демо.гуру99.цом/тест/фацебоок.хтмл и користите Фиребуг да бисте прегледали поља за унос „Е-пошта или телефон“ и „Лозинка“. Забележите њихову ХТМЛ ознаку, класу и атрибуте. За овај пример ћемо одабрати њихове атрибуте „табиндек“.
Корак 2. Прво ћемо приступити оквиру за текст „Е-пошта или телефон“. Стога ћемо користити табиндек вредност од 1. Унесите "цсс = инпут.инпуттект [табиндек = 1]" у поље за циљање Селениум ИДЕ-а и кликните на Пронађи. Треба да буде истакнуто поље за унос „Е-пошта или телефон“.
Корак 3. Да бисте приступили пољу за унос лозинке, једноставно замените вредност атрибута табиндек. Унесите "цсс = инпут.инпуттект [табиндек = 2]" у поље Циљ и кликните на дугме Пронађи. Селениум ИДЕ мора бити у стању да успешно идентификује поље за текст лозинке.
Лоцирање помоћу ЦСС Селецтор - унутрашњи текст
Као што сте можда приметили, ХТМЛ ознакама се ретко дају атрибути ид, име или класа. Па, како да им приступимо? Одговор је кроз употребу њихових унутрашњих текстова. Унутарњи текстови су стварни обрасци низова које ХТМЛ ознака приказује на страници.
Синтакса |
Опис |
---|---|
цсс = таг: садржи ("унутрашњи текст") |
|
Корак 1. Идите на почетну страницу Мерцури Тоурс-а (хттп://демо.гуру99.цом/тест/невтоурс/) и користите Фиребуг да бисте истражили ознаку „Лозинка“. Обратите пажњу на његову ХТМЛ ознаку (која је у овом случају „фонт“) и приметите да она нема атрибуте класе, ИД-а или имена.
Корак 2. Укуцајте цсс = фонт: цонтаинс ("Пассворд:") у поље Таргет Селениум ИДЕ и кликните на Финд. Селениум ИДЕ би требало да има приступ ознаци Лозинка као што је приказано на доњој слици.
Корак 3. Овог пута замените унутрашњи текст са "Бостон" тако да ће ваша мета сада постати "цсс = фонт: цонтаинс (" Бостон ")". Кликните Пронађи. Требало би да приметите да ознака „Бостон до Сан Франциска“ постаје истакнута. Ово вам показује да Селениум ИДЕ може приступити дугачкој налепници чак и ако сте управо назначили прву реч његовог унутрашњег текста.
Лоцирање према ДОМ-у (модел објекта документа)
ДОМ (Доцумент Објецт Модел), најједноставније речено, начин је на који се структурирају ХТМЛ елементи. Селениум ИДЕ може да користи ДОМ за приступ елементима странице. Ако користимо ову методу, наш циљни оквир ће увек почињати са "дом = документ ..."; међутим, префикс "дом =" се обично уклања јер је Селениум ИДЕ у стању да аутоматски протумачи све што започиње са кључном речи "документ" као пут унутар ДОМ-а у Селенију.
Постоје четири основна начина за проналажење елемента путем ДОМ-а у селенијуму:
- гетЕлементБиИд
- гетЕлементсБиНаме
- дом: име (односи се само на елементе унутар именоване форме)
- дом: индекс
Лоцирање помоћу ДОМ-а - гетЕлементБиИд
Усредсредимо се на прву методу - коришћењем методе гетЕлементБиИд ДОМ-а у селенијуму. Синтакса би била:
Синтакса |
Опис |
---|---|
доцумент.гетЕлементБиИд ("ид елемента") |
ид елемента = ово је вредност атрибута ИД елемента којем треба приступити. Ову вредност увек треба ставити у пар заграда (""). |
Корак 1. Користите ову демо страницу хттп://демо.гуру99.цом/тест/фацебоок.хтмл Идите до ње и помоћу Фиребуга прегледајте поље за потврду „Остани пријављен“. Забележите његову личну карту.
Видимо да је ИД који бисмо требали да користимо „персист_бок“.
Корак 2. Отворите Селениум ИДЕ и у оквир Циљ унесите „доцумент.гетЕлементБиИд („ персист_бок “) и кликните на Пронађи. Селениум ИДЕ би требало да може да пронађе поље за потврду „Остани пријављен“. Иако не може да истакне унутрашњост поља за потврду, Селениум ИДЕ и даље може да окружи елемент светло зеленом ивицом, као што је приказано доле.
Лоцирање према ДОМ-у - гетЕлементсБиНаме
Метода гетЕлементБиИд може истовремено приступити само једном елементу, а то је елемент са ИД-ом који сте навели. Метода гетЕлементсБиНаме је другачија. Прикупља низ елемената који имају име које сте навели. Појединим елементима приступате помоћу индекса који почиње на 0.
гетЕлементБиИд
|
||
гетЕлементсБиНаме
|
Синтакса |
Опис |
---|---|
доцумент.гетЕлементсБиНаме ("име") [индекс] |
|
Корак 1. Идите на почетну страницу Мерцури Тоурс-а и пријавите се користећи „туториал“ као корисничко име и лозинку. Фирефок би требало да вас одведе на екран Флигхт Финдер.
Корак 2. Користећи Фиребуг, прегледајте три радио дугмета у доњем делу странице (радио дугмад економске класе, пословне класе и прве класе). Приметите да сви имају исто име које је "сервЦласс".
Корак 3. Прво приступимо радио дугмету „Економска класа“. Од сва ова три радио дугмета, овај елемент је на првом месту, па има индекс 0. У програму Селениум ИДЕ откуцајте „доцумент.гетЕлементсБиНаме („ сервЦласс “) [0]“ и кликните на дугме Пронађи. Селениум ИДЕ треба да буде у стању да правилно идентификује изборни тастер економске класе.
Корак 4. Промените индексни број на 1 тако да ће ваша Таргет сада постати доцумент.гетЕлементсБиНаме ("сервЦласс") [1]. Кликните на дугме Пронађи и Селениум ИДЕ би требало да буде у могућности да истакне радио дугме „Бусинесс цласс“, као што је приказано доле.
Лоцирање према ДОМ - дом: име
Као што је раније поменуто, овај метод ће се применити само ако је елемент којем приступате садржан у именованом обрасцу.
Синтакса |
Опис |
---|---|
доцумент.формс ["име обрасца"] .елементс ["име елемента"] |
|
Корак 1. Идите на почетну страницу Мерцури Тоурс (хттп://демо.гуру99.цом/тест/невтоурс/) и користите Фиребуг да бисте прегледали текстуално поље Усер Наме (Корисничко име). Приметите да је садржан у облику названом „дом“.
Корак 2. У селениум ИДЕ откуцајте "доцумент.формс [" хоме "]. Елементс [" усерНаме "]" и кликните на дугме Финд. Селениум ИДЕ мора бити у могућности да успешно приступи елементу.
Лоцирање према ДОМ - дом: индекс
Ова метода се примењује чак и када елемент није унутар именоване форме јер користи индекс форме, а не његово име.
Синтакса |
Опис |
---|---|
доцумент.формс [индекс облика] .елементс [индекс елемента] |
|
Приступит ћемо оквиру за текст „Телефон“ на страници за регистрацију компаније Мерцури Тоурс. Образац на тој страници нема име и атрибут ИД, па ће ово бити добар пример.
Корак 1. Идите на страницу за регистрацију Мерцури Тоурс и прегледајте оквир за текст Телефон. Приметите да образац који га садржи нема атрибуте ИД-а и имена.
Корак 2. Унесите „доцумент.формс [0] .елементс [3]“ у поље Таргет Селениум ИДЕ и кликните на дугме Пронађи. Селениум ИДЕ би требао бити у могућности да правилно приступи оквиру за текст телефона.
Корак 3. Алтернативно, можете користити име елемента уместо његовог индекса и добити исти резултат. Унесите "доцумент.формс [0] .елементс [" пхоне "]" у поље за циљање Селениум ИДЕ-а. Текстуално поље Телефон и даље треба да буде истакнуто.
Лоцирање путем КСПатх-а
КСПатх је језик који се користи за лоцирање чворова КСМЛ (Ектенсибле Маркуп Лангуаге). Будући да се на ХТМЛ може сматрати имплементацијом КСМЛ-а, такође можемо користити КСПатх за лоцирање ХТМЛ елемената.
Предност: Може приступити готово свим елементима, чак и онима без атрибута класе, имена или ид.
Недостатак: То је најкомпликованија метода идентификовања елемената због превише различитих правила и разматрања.
Срећом, Фиребуг може аутоматски генерисати КСПатх Селениум локаторе. У следећем примеру приступићемо слици којој се не може приступити методама о којима смо раније говорили.
Корак 1. Идите на почетну страницу Мерцури Тоурс-а и користите Фиребуг да бисте прегледали наранџасти правоугаоник десно од жутог оквира „Линкови“. Погледајте доњу слику.
Корак 2 . Кликните десним тастером миша на ХТМЛ код елемента, а затим изаберите опцију „Копирај КСПатх“.
Корак 3. У Селениум ИДЕ откуцајте једну црту унапред „/“ у поље Таргет, а затим налепите КСПатх који смо копирали у претходном кораку. Унос у поље Таргет сада треба да започне са две косе црте "//".
Корак 4 . Кликните на дугме Пронађи. Селениум ИДЕ треба да буде у стању да истакне наранџасто поље као што је приказано доле.
Резиме
Синтакса за употребу локатора
Метод |
Синтакса циља |
Пример |
---|---|---|
По личној карти | ид = ид_елемента | ид = е-маил |
Поименце | име = име_елемента | наме = усерНаме |
По имену помоћу филтера | име = име_елемента филтер = вредност_филтера | наме = трипТипе валуе = оневаи |
Текстом везе | линк = линк_тект | линк = РЕГИСТРУЈ СЕ |
Ознака и ИД | цсс = таг # ид | цсс = инпут # емаил |
Ознака и класа | цсс = ознака. класа | цсс = инпут.инпуттект |
Ознака и атрибут | цсс = ознака [атрибут = вредност] | цсс = инпут [име = презиме] |
Ознака, класа и атрибут | цсс = ознака. класа [атрибут = вредност] | цсс = инпут.инпуттект [табиндек = 1] |