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