У овом чланку ћу вам показати како лоцирати и одабрати елементе са веб страница користећи текст у Селенијуму помоћу библиотеке Селениум питхон. Па, кренимо.
Предуслови:
Да бисте испробали наредбе и примере овог чланка, морате да имате:
- Линук дистрибуција (по могућности Убунту) инсталирана на вашем рачунару.
- Питхон 3 инсталиран на вашем рачунару.
- ПИП 3 инсталиран на вашем рачунару.
- Питхон виртуаленв пакет инсталиран на рачунару.
- Мозилла Фирефок или Гоогле Цхроме веб прегледачи инсталирани на вашем рачунару.
- Морате знати како инсталирати Фирефок Гецко управљачки програм или Цхроме веб управљачки програм.
Да бисте испунили захтеве 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.пи.
Закључак:
У овом чланку сам вам показао како помоћу библиотеке Селениум Питхон пронаћи и одабрати елементе са веб страница текстом. Сада бисте могли да пронађете елементе са веб страница по одређеном тексту или делимичном тексту помоћу библиотеке Селениум Питхон.