КСПатх садржи, следећег брата / сестру, претка & амп; Селен И / ИЛИ

Преглед садржаја:

Anonim

Ако једноставан КСПатх не може да пронађе компликовани веб елемент за нашу тестну скрипту, треба да користимо функције из библиотеке КСПатх 1.0. Комбинацијом ових функција можемо створити специфичнији КСПатх. Хајде да разговарамо о 3 такве функције -

  1. Садржи
  2. Брат или сестра
  3. Предак
  4. И ИЛИ
  5. Родитељ
  6. Почиње са
  7. КСПатх осе

Проучимо их детаљно -

Шта садржи () у селену?

цонтаинс () у селенијуму је функција унутар израза Кспатх која се користи за тражење веб елемената који садрже одређени текст. Све елементе који се подударају са датом вредности текста можемо извући помоћу функције КСПатх цонтаинс () на целој веб страници. Садржи у КСПатх-у има могућност проналаска елемента са делимичним текстом.

Пр. Овде тражимо сидро .садржи текст као 'САП М'.

"// х4 / а [садржи (текст (), 'САП М')]"

НАПОМЕНА: На овом хттп://демо.гуру99.цом/тест/селениум-кпатх.хтмл можете вежбати следећу КСПатх вежбу

Шта је брат или сестра у програму Селениум Вебдривер?

Парњака Селен вебдривер је функција се користи да донесе веб елемент који је брат на родитељског елемента. Ако је надређени елемент познат, тада се веб елемент може лако пронаћи или лоцирати који може користити атрибут сиблинг израза Кспатх у селениум вебдривер.

Пример брата у КСПатх-у: Овде на основу елемента брата „а“ налазимо „х4“

"// див [@ цласс = 'цанвас- грапх'] // а [@хреф = '/ аццоунтинг.хтмл'] [и [@ цласс = 'ицон-усд']] / фолловинг-сиблинг :: х4"

Предак : Да бисмо пронашли елемент на основу родитељског елемента, можемо користити атрибут предака КСПатх-а.

Хајде да разумемо ове 3 функције на примеру -

Пробни кораци

Напомена: Од датума креирања водича, почетна страница Гуру99 је ажурирана, па уместо тога користите демо локацију да бисте покренули тестове

  1. Идите на хттп://демо.гуру99.цом/тест/гуру99хоме/
  2. У одељку „Неколико наших најпопуларнијих курсева“ претражите све Веб елементе који су брата или сестре ВебЕлемента чији је текст „СЕЛЕНИУМ“
  3. Елемент ћемо пронаћи користећи КСПатх текст садржи, претка и функцију сестре.

КОРИШЋЕЊЕ Садржи и КСПатх сиблинг

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

Излаз ће бити као:

Предак у Селениум Вебдривер-у

Предак у Селениум Вебдривер- у је функција која се користи за проналажење претка одређеног члана на наведеном слоју. Ниво претка који се враћа или ниво предака у односу на ниво члана може се изричито навести. Враћа број хијерархијских корака од претка, лоцирајући одређеног претка којег корисник жели.

Сада претпоставимо да треба да претражимо све елементе у одељку „Популарни курс“ уз помоћ претка сидра чији је текст „СЕЛЕНИУМ“

Овде ће наш кпатх упит бити сличан

"//див[.//а[тект()='СЕЛЕНИУМ']]/анцестор::див[@цласс='рт-грид-2 рт-омега '] / фолловинг-сиблинг :: див"

Комплетан код

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

Излаз ће изгледати као-

Коришћење АНД и ОР

Коришћењем АНД и ОР можете да ставите 2 услова у наш КСПатх израз.

  • У случају АНД и оба 2 услова треба да буду тачна, онда само он проналази елемент.
  • У случају ОР било који од два услова треба да буде тачан, онда само он проналази елемент.

Овде ће наш КСПатх упит бити сличан

Кспатх = // * [@ типе = 'субмит' ОР @ наме = 'бтнРесет']
Кспатх = // инпут [@ типе = 'субмит' анд @ наме = 'бтнЛогин']

Пробни кораци:

  1. Идите на хттп://демо.гуру99.цом/в1/
  2. У овом одељку користиће горњу демо локацију за претрагу елемената са различитим функцијама КСПатх-а.

Елемент ћете пронаћи помоћу оса АНД и ОР, надређених, започиње са и КСПатх оси

И ИЛИ Пример

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

Шта је родитељ у селену?

Родитељ у селенијуму је метода која се користи за преузимање родитељског чвора тренутног чвора изабраног на веб страници. Веома је корисно у ситуацији када одаберете елемент и требате добити надређени елемент помоћу Кспатх-а. Ова метода се такође користи за добијање родитеља родитеља.

Овде ће наш КСПатх упит бити сличан

Кспатх = // * [@ ид = 'рт-феатуре'] // надређени :: див

КСПатх користећи родитељ

импорт орг.опенка.селениум.Би;импорт орг.опенка.селениум.ВебДривер;импорт орг.опенка.селениум.ВебЕлемент;импорт орг.опенка.селениум.цхроме.ЦхромеДривер;јавни разред родитељ {јавна статичка воид главна (Стринг [] аргс) {Управљачки програм за ВебДривер;ВебЕлемент в;Систем.сетПроперти ("вебдривер.цхроме.дривер", "Е: //Селениум//Селениум_Јарс//цхромедривер.еке");дривер = нови ЦхромеДривер ();// Покретање апликациједривер.гет ("хттпс://ввв.гуру99.цом/");// Претражујемо елемент користећи ПАРЕНТв = дривер.финдЕлемент (Би.кпатх ("// * [@ ид = 'рт-феатуре'] // родитељ :: див"));// Испис текста траженог елементаСистем.оут.принтлн (в.гетТект ());// Затворите прегледачдривер.куит ();}}

Почиње са

Користећи функцију Стартс-витх, можете пронаћи елемент чији се атрибут динамички мења при освежавању или другим операцијама попут клика, слања итд.

Овде ће наш КСПатх упит бити сличан

Кспатх = // ознака [започиње са (@ ид, 'порука')]

импорт орг.опенка.селениум.Би;импорт орг.опенка.селениум.ВебДривер;импорт орг.опенка.селениум.ВебЕлемент;импорт орг.опенка.селениум.цхроме.ЦхромеДривер;јавна класа СтартсВитх {јавна статичка воид главна (Стринг [] аргс) {Управљачки програм за ВебДривер;ВебЕлемент в;Систем.сетПроперти ("вебдривер.цхроме.дривер", "Е: //Селениум//Селениум_Јарс//цхромедривер.еке");дривер = нови ЦхромеДривер ();// Покретање апликациједривер.гет ("хттпс://ввв.гуру99.цом/");// Претражујемо елемент користећи старт-витхв = дривер.финдЕлемент (Би.кпатх ("// ознака [започиње са (@ ид, 'порука')]"));// Испис текста траженог елементаСистем.оут.принтлн (в.гетТект ());// Затворите прегледачдривер.куит ();}}

Кспатх осе

Коришћењем оси КСПатх можете пронаћи динамичне и врло сложене елементе на веб страници. КСПатх осе садрже неколико метода за проналажење елемента. Овде ћемо разговарати о неколико метода.

следеће : Ова функција ће вратити непосредни елемент одређене компоненте.

Овде ће наш КСПатх упит бити сличан

Кспатх = // * [@ типе = 'тект'] // следећи :: инпут

КСПатх користећи следеће

импорт орг.опенка.селениум.Би;импорт орг.опенка.селениум.ВебДривер;импорт орг.опенка.селениум.ВебЕлемент;импорт орг.опенка.селениум.цхроме.ЦхромеДривер;јавни час Пратим {јавна статичка воид главна (Стринг [] аргс) {Управљачки програм за ВебДривер;ВебЕлемент в;Систем.сетПроперти ("вебдривер.цхроме.дривер", "Е: //Селениум//Селениум_Јарс//цхромедривер.еке");дривер = нови ЦхромеДривер ();// Покретање апликациједривер.гет ("хттпс://ввв.гуру99.цом/");// Претражујемо елемент помоћу следеће методев = дривер.финдЕлемент (Би.кпатх ("// * [@ типе = 'тект'] // следећи :: инпут"));// Испис текста траженог елементаСистем.оут.принтлн (в.гетТект ());// Затворите прегледачдривер.куит ();}}

Претходно: Ова функција ће вратити претходни елемент одређеног елемента.

Овде ће наш КСПатх упит бити сличан

Кспатх = // * [@ типе = 'субмит'] // претходни :: инпут

КСПатх користећи Прецединг

импорт орг.опенка.селениум.Би;импорт орг.опенка.селениум.ВебДривер;импорт орг.опенка.селениум.ВебЕлемент;импорт орг.опенка.селениум.цхроме.ЦхромеДривер;јавни час претходи {јавна статичка воид главна (Стринг [] аргс) {Управљачки програм за ВебДривер;ВебЕлемент в;Систем.сетПроперти ("вебдривер.цхроме.дривер", "Е: //Селениум//Селениум_Јарс//цхромедривер.еке");дривер = нови ЦхромеДривер ();// Покретање апликациједривер.гет ("хттпс://ввв.гуру99.цом/");// Претраживање елемента помоћу претходне методев = дривер.финдЕлемент (Би.кпатх ("// * [@ типе = 'субмит'] // претходни :: инпут"));// Испис траженог елементаСистем.оут.принтлн (в.гетТект ());// Затворите прегледачдривер.куит ();}}

д) Десцендант: Ова функција ће вратити потомствени елемент одређеног елемента.

Овде ће наш КСПатх упит бити сличан

Кспатх = // * [@ ид = 'рт-феатуре'] // потомак :: а

КСПатх користећи Десцендант

импорт орг.опенка.селениум.Би;импорт орг.опенка.селениум.ВебДривер;импорт орг.опенка.селениум.ВебЕлемент;импорт орг.опенка.селениум.цхроме.ЦхромеДривер;јавни разред Потомак {јавна статичка воид главна (Стринг [] аргс) {Управљачки програм за ВебДривер;ВебЕлемент в;Систем.сетПроперти ("вебдривер.цхроме.дривер", "Е: //Селениум//Селениум_Јарс//цхромедривер.еке");дривер = нови ЦхромеДривер ();// Покретање апликациједривер.гет ("хттпс://ввв.гуру99.цом/");// Претражујемо елемент помоћу методе потомкав = дривер.финдЕлемент (Би.кпатх ("// * [@ ид = 'рт-феатуре'] // потомак :: а"));// Испис траженог елементаСистем.оут.принтлн (в.гетТект ());// Затворите прегледачдривер.куит ();}}

Резиме

  • Постоје неке ситуације када се уобичајени КСПатх не може користити за проналажење елемента. У таквој ситуацији су нам потребне различите функције од кпатх упита.
  • Ту су неке важне КСПатх функције као што КСПатх садржи, родитељ, преци, сродници итд.
  • Уз помоћ ових функција можете креирати сложене КСПатх изразе.