Пронађи елементе према тексту везе & амп; Текст делимичне везе у програму Селениум Вебдривер

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

Anonim

Шта је текст везе у селенијуму?

Текст везе на селена се користи за идентификацију хипервезе на веб страници. Одређује се помоћу сидрене ознаке. За стварање хипервеза на веб страници можемо користити сидрену ознаку праћену везом Текст.

Везе које одговарају критеријуму

Везама се може приступити помоћу тачног или делимичног подударања њиховог текста везе. Следећи примери пружају сценарије у којима би постојало више подударања и објаснили би како ће се ВебДривер носити са њима.

У овом упутству научићемо доступне методе за проналажење и приступ Везама помоћу Вебдривера. Такође, разговараћемо о неким уобичајеним проблемима са којима се суочавају приликом приступања Везама и даље о начину њиховог решавања.

Ево шта ћете научити-

  • Приступ везама помоћу тачног подударања текста: Би.линкТект ()
  • Приступ везама помоћу делимичног подударања текста: Би.партиалЛинкТект ()
  • Како доћи до више веза са истим текстом везе
  • Осетљивост на мала и велика слова за текст везе
  • Везе споља и унутар блока

Приступ везама помоћу тачног подударања текста: Би.линкТект ()

Приступ везама користећи њихов тачан текст везе врши се методом Би.линкТект () . Међутим, ако постоје две везе које имају исти текст везе, овај метод ће приступити само првом. Размотрите ХТМЛ код у наставку

Када покушате да покренете ВебДривер код испод, приступићете првој вези „кликните овде“

Шифра:

импорт орг.опенка.селениум.Би;импорт орг.опенка.селениум.ВебДривер;импорт орг.опенка.селениум.цхроме.ЦхромеДривер;јавна класа МиЦласс {јавна статичка воид главна (Стринг [] аргс) {Стринг басеУрл = "хттп://демо.гуру99.цом/тест/линк.хтмл";Систем.сетПроперти ("вебдривер.цхроме.дривер", "Г: \\ цхромедривер.еке");Управљачки програм за ВебДривер = нови ЦхромеДривер ();дривер.гет (басеУрл);дривер.финдЕлемент (Би.линкТект ("кликните овде")). цлицк ();Систем.оут.принтлн ("наслов странице је: + дривер.гетТитле ());дривер.куит ();}}

Ево како то ради-

Као резултат, аутоматски ћете бити преусмерени на Гоогле.

Приступ везама помоћу делимичног подударања текста: Би.партиалЛинкТект ()

Приступ везама помоћу дела текста њиховог линка врши се методом Би.партиалЛинкТект () . Ако наведете делимични текст везе који има више подударања, приступиће се само првом подударању. Размотрите ХТМЛ код у наставку.

Када извршите ВебДривер код испод, и даље ћете бити преусмерени на Гоогле.

Шифра:

импорт орг.опенка.селениум.Би;импорт орг.опенка.селениум.ВебДривер;импорт орг.опенка.селениум.цхроме.ЦхромеДривер;јавна класа П1 {јавна статичка воид главна (Стринг [] аргс) {Стринг басеУрл = "хттп://демо.гуру99.цом/тест/аццессинг-линк.хтмл";Систем.сетПроперти ("вебдривер.цхроме.дривер", "Г: \\ цхромедривер.еке");Управљачки програм за ВебДривер = нови ЦхромеДривер ();дривер.гет (басеУрл);дривер.финдЕлемент (Би.партиалЛинкТект ("овде")). цлицк ();Систем.оут.принтлн ("Наслов странице је: + дривер.гетТитле ());дривер.куит ();}}

Како доћи до више веза са истим текстом везе

Па, како заобићи горе наведени проблем? У случајевима када постоји више веза са истим текстом везе, а ми желимо да приступимо везама које нису прва, како да то поступимо?

У таквим случајевима се углавном користе различити локатори, на пример ... Би.кпатх (), Би.цссСелецтор () или Би.тагНаме ().

Најчешће се користи Би.кпатх (). Најпоузданији је, али изгледа и сложен и нечитљив.

Осетљивост на мала и велика слова за текст везе

Параметри за Би.линкТект () и Би.партиалЛинкТект () разликују велика и мала слова, што значи да су велика слова битна. На пример, на почетној страници Мерцури Тоурс-а постоје два линка који садрже текст „егис“ - један је линк „РЕГИСТРУЈ“ у горњем менију, а други линк „Региструјте се овде“ у доњем десном делу странице.

Иако обе везе садрже секвенцу знакова „егис“, метода „Би.партиалЛинкТект ()“ ће приступити овим двема везама одвојено, у зависности од великих слова. Погледајте пример кода у наставку.

Код

јавна статичка воид главна (Стринг [] аргс) {Стринг басеУрл = "хттп://демо.гуру99.цом/тест/невтоурс/";Систем.сетПроперти ("вебдривер.цхроме.дривер", "Г: \\ цхромедривер.еке");Управљачки програм за ВебДривер = нови ЦхромеДривер ();дривер.гет (басеУрл);Стринг тхеЛинкТект = дривер.финдЕлемент (Аутор.партиалЛинкТект ("егис")).гетТект ();Систем.оут.принтлн (тхеЛинкТект);тхеЛинкТект = дривер.финдЕлемент (Аутор.партиалЛинкТект ("ЕГИС")).гетТект ();Систем.оут.принтлн (тхеЛинкТект);дривер.куит ();}

Везе споља и унутар блока

Најновији ХТМЛ5 стандард омогућава постављање ознака <а> унутар и изван ознака на нивоу блока као што су <див>, <п> или <х3>. Методе „Би.линкТект ()“ и „Би.партиалЛинкТект ()“ могу приступити вези која се налази изван и унутар ових елемената на нивоу блока. Размотрите ХТМЛ код у наставку.

Доље наведени ВебДривер код приступа овим везама користећи методу Би.партиалЛинкТект ().

Шифра:

импорт орг.опенка.селениум.Би;импорт орг.опенка.селениум.ВебДривер;импорт орг.опенка.селениум.цхроме.ЦхромеДривер;јавна класа МиЦласс {јавна статичка воид главна (Стринг [] аргс) {Стринг басеУрл = "хттп://демо.гуру99.цом/тест/блоцк.хтмл";Систем.сетПроперти ("вебдривер.цхроме.дривер", "Г: \\ цхромедривер.еке");Управљачки програм за ВебДривер = нови ЦхромеДривер ();дривер.гет (басеУрл);дривер.финдЕлемент (Би.партиалЛинкТект ("Унутрашњост")). цлицк ();Систем.оут.принтлн (дривер.гетТитле ());дривер.навигате (). бацк ();дривер.финдЕлемент (Би.партиалЛинкТект ("Оутсиде")). цлицк ();Систем.оут.принтлн (дривер.гетТитле ());дривер.куит ();}}

Горњи излаз потврђује да су обема везама успешно приступили јер су наслови њихових страница тачно пронађени.

Резиме

  • Везама се приступа помоћу методе цлицк ().
  • Поред локатора доступних за било који ВебЕлемент, Линкови имају и локаторе засноване на тексту веза:
    • Би.линкТект () - проналази везе на основу тачног подударања текста везе наведеног као параметар.
    • Би.партиалЛинкТект () - проналази везе на основу делимичног подударања текста текста везе.
  • Оба наведена локатора разликују велика и мала слова.
  • Ако постоји више подударања, Би.линкТект () и Би.партиалЛинкТект () ће одабрати само прво подударање. У таквим случајевима када је присутно више веза са истим текстом везе, користе се други локатори засновани на кпатх, ЦСС.
  • финдЕлементс () & Би.тагНаме ("а") метода проналази све елементе на страници који одговарају критеријумима локатора
  • Везама могу приступити Би.линкТект () и Би.партиалЛинкТект () без обзира да ли се налазе унутар или изван елемената на нивоу блока.