Селен

Како пронаћи елемент помоћу текста помоћу селена

Како пронаћи елемент помоћу текста помоћу селена
Лоцирање и одабир елемената са веб странице је кључ за стругање веба помоћу селена. Елементе можете одабрати помоћу назива ознаке, ИД-а, назива класе, КСПатх селектора, ЦСС селектора итд. у селену. Елементе који имају одређени текст такође можете да изаберете помоћу селена. Ово је корисно за лак одабир веза и дугмади са веб странице. Чак и ако се структура странице промени, све док текст елемента веб странице остаје исти, ваш бирач би требао радити сасвим у реду. То је предност одабира веза и дугмади помоћу текста у селенијуму.

У овом чланку ћу вам показати како лоцирати и одабрати елементе са веб страница користећи текст у Селенијуму помоћу библиотеке Селениум питхон. Па, кренимо.

Предуслови:

Да бисте испробали наредбе и примере овог чланка, морате да имате:

  1. Линук дистрибуција (по могућности Убунту) инсталирана на вашем рачунару.
  2. Питхон 3 инсталиран на вашем рачунару.
  3. ПИП 3 инсталиран на вашем рачунару.
  4. Питхон виртуаленв пакет инсталиран на рачунару.
  5. Мозилла Фирефок или Гоогле Цхроме веб прегледачи инсталирани на вашем рачунару.
  6. Морате знати како инсталирати Фирефок Гецко управљачки програм или Цхроме веб управљачки програм.

Да бисте испунили захтеве 4, 5 и 6, прочитајте мој чланак Увод у селен у Питхону 3.

На ЛинукХинту можете пронаћи много чланака о осталим темама.цом. Обавезно их прегледајте ако вам је потребна помоћ.

Постављање директоријума пројеката:

Да бисте све организовали, направите нови директоријум пројеката селениум-тект-селецт / као што следи:

$ мкдир -пв селениум-тект-селецт / дриверс

Дођите до селениум-тект-селецт / директоријум пројекта како следи:

$ цд селениум-тект-селецт /

Креирајте Питхон виртуелно окружење у директоријуму пројекта на следећи начин:

$ виртуаленв .венв

Активирајте виртуелно окружење на следећи начин:

$ извор .венв / бин / активирати

Инсталирајте библиотеку Селениум Питхон користећи ПИП3 на следећи начин:

$ пип3 инсталирајте селен

Преузмите и инсталирајте све потребне веб управљачке програме у возачи / директоријум пројекта. У свом чланку сам објаснио поступак преузимања и инсталирања веб управљачких програма Увод у селен у Питхону 3.

Проналажење елемената помоћу текста:

У овом одељку ћу вам показати неке примере проналажења и одабира елемената веб страница по тексту помоћу библиотеке Селениум Питхон.

Започећу са најједноставнијим примером бирања елемената веб странице текстом, одабиром веза са веб странице.

На страници за пријављивање на фацебооку.цом, имамо везу Заборављени рачун? Као што можете видети на снимку екрана испод. Изаберите ову везу помоћу селена.

Направите нову Питхон скрипту ек01.пи и укуцајте у њега следеће редове кодова.

из селена за увоз вебдривер-а
од селена.вебдривер.заједнички.кључеви увозе кључеве
од селена.вебдривер.заједнички.увозом Би
од времена увозни сан
бровсер = вебдривер.Цхроме (извршна_пута = "./ возачи / хромедривер ")
претраживач.гет ("хттпс: // ввв.Фејсбук.цом / ")
заборавиоАццоунтЛинк = прегледач.финд_елемент (Аутор.КСПАТХ, "
// * [тект () = 'Заборављени рачун?'] ")
ФорготАццоунтЛинк.сенд_кеис (Тастери.ЕНТЕР)

Када завршите, сачувајте ек01.пи Питхон скрипта.

Линија 1-4 увози све потребне компоненте у програм Питхон.

Ред 6 креира Цхроме претраживач објекат помоћу цхромедривер бинарни из возачи / директоријум пројекта.

Ред 8 говори претраживачу да учита веб страницу фацебоок.цом.

Ред 10 проналази везу која садржи текст Заборављени рачун? Коришћење КСПатх селектора. За то сам користио КСПатх селектор // * [тект () = 'Заборављени рачун?'].

Бирач КСПатх започиње са //, што значи да елемент може бити било где на страници. Тхе * симбол говори Селенију да одабере било коју ознаку (а или стр или распон, итд.) који се подудара са условима унутар угластих заграда []. Овде је услов да је текст елемента једнак Заборављени рачун?

Тхе текст () Функција КСПатх користи се за добијање текста елемента.

На пример, текст () враћа се Здраво Свете ако одабере следећи ХТМЛ елемент.

Здраво Свете

Линија 11 шаље тастер притисните на Заборављени рачун? Линк.

Покрените Питхон скрипту ек01.пи са следећом командом:

$ питхон ек01.пи

Као што видите, веб прегледач проналази, бира и притиска тастер на Заборављени рачун? Линк.

Тхе Заборављени рачун? Линк води претраживач до следеће странице.

На исти начин, лако можете тражити елементе који имају жељену вредност атрибута.

Ево, Пријавите се дугме је улазни елемент који има вредност атрибут Пријавите се. Погледајмо како да одаберемо овај елемент текстом.

Направите нову Питхон скрипту ек02.пи и укуцајте у њега следеће редове кодова.

из селена за увоз вебдривер-а
од селена.вебдривер.заједнички.кључеви увозе кључеве
од селена.вебдривер.заједнички.увозом Би
од времена увозни сан
бровсер = вебдривер.Цхроме (извршна_пута = "./ возачи / хромедривер ")
претраживач.гет ("хттпс: // ввв.Фејсбук.цом / ")
спавање (5)
емаилИнпут = прегледач.финд_елемент (Аутор.КСПАТХ, "// унос [@ ид = 'емаил']")
пассвордИнпут = претраживач.финд_елемент (Аутор.КСПАТХ, "// унос [@ ид = 'пасс']")
логинБуттон = прегледач.финд_елемент (Аутор.КСПАТХ, "// * [@ валуе = 'Пријави се']")
емаилИнпут.сенд_кеис ('[емаил заштићен]')
спавање (5)
пассвордИнпут.сенд_кеис ('сецрет-пасс')
спавање (5)
логинБуттон.сенд_кеис (Тастери.ЕНТЕР)

Када завршите, сачувајте ек02.пи Питхон скрипта.

Линија 1-4 увози све потребне компоненте.

Ред 6 креира Цхроме претраживач објекат помоћу цхромедривер бинарни из возачи / директоријум пројекта.

Ред 8 говори претраживачу да учита веб страницу фацебоок.цом.

Све се догоди тако брзо када покренете скрипту. Дакле, користио сам спавање () функционишу много пута у ек02.пи за одлагање наредби прегледача. На овај начин можете посматрати како све функционише.

Ред 11 проналази оквир за текст за унос е-поште и чува референцу елемента у емаилИнпут променљива.

Ред 12 проналази оквир за текст за унос е-поште и чува референцу на елемент у емаилИнпут променљива.

Ред 13 проналази улазни елемент који има атрибут вредност од Пријавите се помоћу КСПатх селектора. За то сам користио КСПатх селектор // * [@ валуе = 'Пријави се'].

Бирач КСПатх започиње са //. То значи да елемент може бити било где на страници. Тхе * симбол говори Селенију да одабере било коју ознаку (улазни или стр или распон, итд.) који се подудара са условима унутар угластих заграда []. Овде је услов атрибут елемента вредност је једнако Пријавите се.

Ред 15 шаље улаз [заштићен е-поштом] у оквир за текст за унос е-поште, а ред 16 одлаже следећу операцију.

Ред 18 шаље улазни тајни пролаз у оквир за текст за унос лозинке, а ред 19 одлаже следећу операцију.

Линија 21 шаље тастер притисните на дугме за пријаву.

Покренути ек02.пи Питхон скрипта са следећом наредбом:

$ питхон3 ек02.пи

Као што видите, поља за текст е-поште и лозинке су испуњена нашим лажним вредностима, а Пријавите се притиснуто дугме.

Затим страница прелази на следећу страницу.

Проналажење елемената делимичним текстом:

У ранијем одељку показао сам вам како да пронађете елементе према одређеном тексту. У овом одељку ћу вам показати како да пронађете елементе са веб страница помоћу делимичног текста.

У примеру, ек01.пи, Потражио сам елемент везе који садржи текст Заборављени рачун?. Исти елемент везе можете претраживати помоћу делимичног текста као што је Форготтен ацц. Да бисте то урадили, можете користити садржи() КСПатх функција, као што је приказано у реду 10 од ек03.пи. Остали кодови су исти као у ек01.пи. Резултати ће бити исти.

У реду 10 од ек03.пи, услов за избор је користио садржи (извор, текст) КСПатх функција. Ова функција узима 2 аргумента, извор, и текст.

Тхе садржи() функција проверава да ли је текст дат у другом аргументу делимично се подудара са извор вредност у првом аргументу.

Извор може бити текст елемента (текст ()) или вредност атрибута елемента (@аттр_наме).

У ек03.пи, проверава се текст елемента.

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

Преписао сам пример ек03.пи да тражи елемент за који текст започиње Заборављена, као што видите у 10. реду ек04.пи. Резултат је исти као у ек02 и ек03.пи.

Такође сам преписао ек02.пи тако да тражи улазни елемент за који вредност атрибут почиње са Пријава, као што видите у 13. реду ек05.пи. Резултат је исти као у ек02.пи.

Закључак:

У овом чланку сам вам показао како помоћу библиотеке Селениум Питхон пронаћи и одабрати елементе са веб страница текстом. Сада бисте могли да пронађете елементе са веб страница по одређеном тексту или делимичном тексту помоћу библиотеке Селениум Питхон.

Како се користи ГамеЦонкуерор Цхеат Енгине у Линуку
Чланак покрива водич о коришћењу ГамеЦонкуерор варалице у Линуку. Многи корисници који играју игре на Виндовс-у често користе апликацију „Цхеат Енгине...
Најбољи емулатори играће конзоле за Линук
Овај чланак ће навести популарни софтвер за емулацију играће конзоле доступан за Линук. Емулација је слој компатибилности софтвера који опонаша хардве...
Најбољи Линук Дистрос за игре у 2021
Линук оперативни систем далеко је превалио свој изворни, једноставни изглед заснован на серверима. Овај ОС се изузетно побољшао последњих година и сад...