Селен

Увод у селен у Питхону 3

Увод у селен у Питхону 3
Селен је оквир који се користи за тестирање веб апликација. Селениум аутоматизује прегледач, попут Цхроме-а или Фирефок-а, за покретање тестова на жељеној веб локацији. Селен је такође врло моћан алат за стругање по мрежи. Селениум подржава ЈаваСцрипт и све модерне функције прегледача. Овај алат је веома ефикасан у издвајању информација са веб локација.

Овај чланак ће вам показати како поставити Селениум на вашу Линук дистрибуцију (тј.е., Убунту), као и како извршити основну веб аутоматизацију и разбијање веба помоћу библиотеке Селениум Питхон 3.

Предуслови

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

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

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

Припрема виртуелног окружења Питхон 3 за пројекат

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

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

Можете инсталирати Питхон виртуаленв модул глобално користећи ПИП 3, како следи:

$ судо пип3 инсталирај виртуаленв

ПИП3 ће преузети и глобално инсталирати све потребне модуле.

У овом тренутку, Питхон виртуаленв модул треба инсталирати глобално.

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

$ мкдир -пв питхон-селениум-басиц / управљачки програми

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

$ цд питхон-селениум-басиц /

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

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

Питхон виртуелно окружење би сада требало да буде креирано у директоријуму вашег пројекта.'

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

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

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

Инсталирање библиотеке Селениум Питхон

Библиотека Селениум Питхон је доступна у званичном спремишту Питхон ПиПИ.

Ову библиотеку можете да инсталирате помоћу ПИП 3, како следи:

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

Сада би требало инсталирати библиотеку Селениум Питхон.

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

Инсталирање Фирефок Гецко управљачког програма

Фирефок Гецко Дривер вам омогућава да контролишете или аутоматизујете Фирефок веб прегледач помоћу селена.

Да бисте преузели Фирефок Гецко Дривер, посетите ГитХуб страницу издања мозилла / гецкодривер из веб прегледача.

Као што видите, в0.26.0 је најновија верзија Фирефок Гецко управљачког програма у време када је овај чланак написан.

Да бисте преузели Фирефок Гецко Дривер, померите се мало надоле и кликните на Линук гецкодривер тар.гз архива, у зависности од архитектуре вашег оперативног система.

Ако користите 32-битни оперативни систем, кликните на гецкодривер-в0.26.0-линук32.катран.гз линк.

Ако користите 64-битни оперативни систем, кликните на гецкодривер-в0.26.0-линукк64.катран.гз линк.

У мом случају ћу преузети 64-битну верзију управљачког програма Фирефок Гецко.

Ваш претраживач треба да затражи да сачувате архиву. Изаберите Сними документ а затим кликните У реду.

Архиву Фирефок Гецко Дривер треба преузети у ~ / Преузимања именик.

Извуци гецкодривер-в0.26.0-линук64.катран.гз архива из ~ / Преузимања директоријум у возачи / директоријум вашег пројекта уношењем следеће наредбе:

$ тар -кзф ~ / Преузимања / гецкодривер-в0.26.0-линук64.катран.гз -Ц управљачки програми /

Једном када се извади архива Фирефок Гецко Дривер, нова гецкодривер бинарна датотека треба бити креирана у возачи / директоријум вашег пројекта, као што можете видети на снимку екрана испод.

Тестирање управљачког програма за селениум Фирефок Гецко

У овом одељку ћу вам показати како да подесите своју прву Селениум Питхон скрипту да бисте тестирали да ли Фирефок Гецко Дривер ради.

Прво отворите директоријум пројекта питхон-селениум-басиц / са вашим омиљеним ИДЕ-ом или уређивачем. У овом чланку ћу користити Висуал Студио Цоде.

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

из селена за увоз вебдривер-а
од селена.вебдривер.заједнички.кључеви увозе кључеве
од времена увозни сан
бровсер = вебдривер.Фирефок (извршна_пута = "./ возачи / гецкодривер ")
претраживач.гет ('хттп: // ввв.гоогле.цом ')
спавање (5)
претраживач.одустати()

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

Објаснићу код у каснијем одељку овог чланка.

Следећи ред конфигурише Селениум да користи Фирефок Гецко Дривер са возачи / директоријум вашег пројекта.

Да бисте тестирали да ли Фирефок Гецко Дривер ради са селеном, покрените следеће ек01.пи Питхон скрипта:

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

Интернет прегледач Фирефок треба аутоматски да посети Гоогле.цом и затворите се након 5 секунди. Ако се ово догоди, онда покретачки програм Селениум Фирефок Гецко ради исправно.

Инсталирање Цхроме веб управљачког програма

Цхроме веб управљачки програм вам омогућава да контролишете или аутоматизујете веб прегледач Гоогле Цхроме помоћу селена.

Морате да преузмете исту верзију Цхроме веб управљачког програма као и веб претраживач Гоогле Цхроме.

Да бисте пронашли број верзије свог веб прегледача Гоогле Цхроме, посетите цхроме: // сеттингс / хелп у Гоогле Цхроме-у. Број верзије треба да буде у О Цхроме-у одељак, као што можете видети на снимку екрана испод.

У мом случају, број верзије је 83.0.4103.116. Прва три дела броја верзије (83.0.4103, у мом случају) мора да се подудара са прва три дела броја верзије Цхроме веб управљачког програма.

Да бисте преузели Цхроме веб управљачки програм, посетите званичну страницу за преузимање Цхроме управљачког програма.

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

Ако верзија Гоогле Цхроме-а коју користите није у Тренутна издања одељак, померите се мало надоле и требали бисте пронаћи жељену верзију.

Када кликнете на исправну верзију Цхроме веб управљачког програма, требало би да вас одведе на следећу страницу. Кликните на цхромедривер_линук64.зип линк, као што је забележено на снимку екрана испод.

Архива Цхроме веб управљачког програма сада треба да се преузме.

Архиву Цхроме веб управљачког програма сада треба преузети у ~ / Преузимања именик.

Можете да извучете цхромедривер-линук64.зип архива из ~ / Преузимања директоријум у возачи / директоријум вашег пројекта са следећом наредбом:

$ унзип ~ / Довнлоадс / цхромедривер_линук64.зип -д драјвери /

Када се издвоји архива Цхроме веб управљачког програма, нова цхромедривер бинарна датотека треба бити креирана у возачи / директоријум вашег пројекта, као што можете видети на снимку екрана испод.

Тестирање селенског Цхроме веб управљачког програма

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

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

из селена за увоз вебдривер-а
од селена.вебдривер.заједнички.кључеви увозе кључеве
од времена увозни сан
бровсер = вебдривер.Цхроме (извршна_пута = "./ возачи / хромедривер ")
претраживач.гет ('хттп: // ввв.гоогле.цом ')
спавање (5)
претраживач.одустати()

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

Објаснићу код у каснијем одељку овог чланка.

Следећи ред конфигурише Селениум да користи Цхроме веб управљачки програм са возачи / директоријум вашег пројекта.

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

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

Веб прегледач Гоогле Цхроме треба аутоматски да посети Гоогле.цом и затворите се након 5 секунди. Ако се ово догоди, онда покретачки програм Селениум Фирефок Гецко ради исправно.

Основе стругања веба са селеном

Од сада ћу користити веб прегледач Фирефок. Такође можете да користите Цхроме, ако желите.

Основна скрипта Селениум Питхон би требало да изгледа као скрипта приказана на снимку заслона испод.

Прво увезите селен вебдривер од селен модул.

Затим увезите Кључеви од селен.вебдривер.заједнички.кључеви. Ово ће вам помоћи да притиснете тастере на тастатури у прегледач који аутоматизујете из селена.

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

Да бисте учитали веб локацију или УРЛ (учитаћу веб страницу хттпс: // ввв.дуцкдуцкго.цом), позовите добити() метода претраживач објект у вашем прегледачу Фирефок.

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

Изнад је основни изглед скрипте Селениум Питхон. Ове редове ћете писати у свим својим скриптама Селениум Питхон.

Пример 1: Штампање наслова веб странице

Ово ће бити најлакши пример о коме се расправљало помоћу селена. У овом примеру ћемо одштампати наслов веб странице коју ћемо посетити.

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

из селена за увоз вебдривер-а
од селена.вебдривер.заједнички.кључеви увозе кључеве
бровсер = вебдривер.Фирефок (извршна_пута = "./ возачи / гецкодривер ")
претраживач.гет ('хттпс: // ввв.дуцкдуцкго.цом ')
принт ("Наслов:% с"% прегледач.наслов)
претраживач.одустати()

Када завршите, сачувајте датотеку.

Ево, претраживач.наслов користи се за приступ наслову посећене веб странице и испис () функција ће се користити за испис наслова у конзоли.

Након покретања ек04.пи скрипта, треба да:

1) Отворите Фирефок
2) Учитајте жељену веб страницу
3) Дохвати наслов странице
4) Одштампајте наслов на конзоли
5) И на крају, затворите прегледач

Као што видите, ек04.пи скрипта је лепо штампала наслов веб странице у конзоли.

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

Пример 2: Штампање наслова више веб страница

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

Да бисте разумели како ово функционише, креирајте нову Питхон скрипту ек05.пи и укуцајте следеће редове кода у скрипту:

из селена за увоз вебдривер-а
од селена.вебдривер.заједнички.кључеви увозе кључеве
бровсер = вебдривер.Фирефок (извршна_пута = "./ возачи / гецкодривер ")
урлс = ['хттпс: // ввв.дуцкдуцкго.цом ',' хттпс: // линукхинт.цом ',' хттпс: // иахоо.цом ']
за урл у урл-овима:
претраживач.добити (урл)
принт ("Наслов:% с"% прегледач.наслов)
претраживач.одустати()

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

Ево, урл адресе листа чува УРЛ сваке веб странице.

А за петља се користи за итерацију кроз урл адресе ставке листе.

На свакој итерацији, Селениум говори прегледачу да посети урл и добити наслов веб странице. Када је Селениум извукао наслов веб странице, одштампаће се у конзоли.

Покрените Питхон скрипту ек05.пи, и требали бисте видети наслов сваке веб странице у урл адресе листа.

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

Ово је пример како Селениум може да изврши исти задатак са више веб страница или веб локација.

Пример 3: Издвајање података са веб странице

У овом примеру ћу вам показати основе издвајања података са веб страница помоћу селена. Ово је познато и као стругање по мрежи.

Прво посетите Рандом.орг линк из Фирефока. Страница треба да генерише насумични низ, као што можете видети на снимку екрана испод.

Да бисте издвојили случајне низ података помоћу програма Селениум, такође морате знати ХТМЛ представу података.

Да бисте видели како су случајни подаци о низу представљени у ХТМЛ-у, одаберите податке о случајним низовима и притисните десни тастер миша (РМБ) и кликните на Прегледај елемент (К), као што је забележено на доњем снимку екрана.

ХТМЛ приказ података треба приказати у Инспекторе картицу, као што можете видети на снимку екрана испод.

Такође можете да кликнете на Икона прегледа ( ) за увид у податке са странице.

Кликните на икону прегледа () и задржите показивач изнад података случајних низова које желите да извучете. ХТМЛ приказ података треба приказати као и раније.

Као што видите, подаци случајних низова су умотани у ХТМЛ пре ознака и садржи класу подаци.

Сада када знамо ХТМЛ представу података које желимо да издвојимо, креираћемо Питхон скрипту за издвајање података помоћу Селениум-а.

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

из селена за увоз вебдривер-а
од селена.вебдривер.заједнички.кључеви увозе кључеве
бровсер = вебдривер.Фирефок (извршна_пута = "./ возачи / гецкодривер ")
претраживач.гет ("хттпс: // ввв.случајни.орг / стрингс /?нум = 1 & лен = 20 & цифара
= на & уппералпха = на & ловералпха = на & јединствено = на & формат = хтмл & рнд = ново ")
датаЕлемент = прегледач.финд_елемент_би_цсс_селецтор ('пре.подаци ')
принт (датаЕлемент.текст)
претраживач.одустати()

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

Ево, претраживач.добити() метод учитава веб страницу у прегледачу Фирефок.

Тхе претраживач.финд_елемент_би_цсс_селецтор () метода претражује ХТМЛ код странице за одређени елемент и враћа га.

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

Испод пре.подаци елемент је сачуван у датаЕлемент променљива.

Скрипта затим штампа текстуални садржај изабраног пре.подаци елемент.

Ако покренете ек06.пи Питхон скрипта, требало би да извуче случајне низ података са веб странице, као што можете видети на снимку екрана испод.

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

Као што видите, сваки пут када покренем ек06.пи Питхон скрипта, она извлачи различите податке случајног низа са веб странице.

Пример 4: Издвајање листе података са веб странице

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

Прво посетите генератор случајних имена.информације из вашег прегледача Фирефок. Ова веб локација ће генерисати десет насумичних имена сваки пут када поново учитате страницу, као што можете видети на снимку екрана испод. Циљ нам је да издвојимо ова случајна имена помоћу селена.

Ако пажљивије прегледате списак имена, можете видети да је то уређена листа (ол таг). Тхе ол ознака такође укључује назив класе намеЛист. Свако од насумичних имена представљено је као ставка на листи (ли ознака) унутар ол ознака.

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

из селена за увоз вебдривер-а
од селена.вебдривер.заједнички.кључеви увозе кључеве
бровсер = вебдривер.Фирефок (извршна_пута = "./ возачи / гецкодривер ")
претраживач.гет ("хттп: // рандом-наме-генератор.инфо / ")
намеЛист = прегледач.финд_елементс_би_цсс_селецтор ('ол.намеЛист ли ')
за име у листи имена:
испис (име.текст)
претраживач.одустати()

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

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

Тхе претраживач.финд_елементс_би_цсс_селецтор () метода користи ЦСС селектор ол.списак имена ли пронаћи све ли елементи унутар ол ознака која има назив класе намеЛист. Сачувао сам све изабрано ли елементи у намеЛист променљива.

А за петља се користи за итерацију кроз намеЛист листа ли елементи. У свакој итерацији, садржај ли елемент је одштампан на конзоли.

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

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

Ако скрипту покренете други пут, требало би да врати нову листу насумичних корисничких имена, као што можете видети на снимку заслона испод.

Пример 5: Слање обрасца - Претраживање на ДуцкДуцкГо

Овај пример је једнако једноставан као и први пример. У овом примеру ћу посетити претраживач ДуцкДуцкГо и претражити тај термин селен хк користећи селен.

Прво посетите ДуцкДуцкГо претраживач из веб прегледача Фирефок.

Ако прегледате поље за унос претраге, оно би требало да има ид сеарцх_форм_инпут_хомепаге, као што видите на доњем снимку екрана.

Сада креирајте нову Питхон скрипту ек08.пи и укуцајте следеће скрипте у редове кода.

из селена за увоз вебдривер-а
од селена.вебдривер.заједнички.кључеви увозе кључеве
бровсер = вебдривер.Фирефок (извршна_пута = "./ возачи / гецкодривер ")
претраживач.гет ("хттпс: // дуцкдуцкго.цом / ")
сеарцхИнпут = претраживач.финд_елемент_би_ид ('сеарцх_форм_инпут_хомепаге')
сеарцхИнпут.сенд_кеис ('селениум хк' + тастери.ЕНТЕР)

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

Ево, претраживач.добити() метода учитава почетну страницу претраживача ДуцкДуцкГо у веб прегледачу Фирефок.

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

Тхе сеарцхИнпут.сенд_кеис () метода се користи за слање података о притиску тастера у поље за унос. У овом примеру шаље низ селен хк, а тастер Ентер се притиска помоћу тастера Кључеви.ЕНТЕР константан.

Чим претраживач ДуцкДуцкГо прими тастер Ентер притисните (Кључеви.ЕНТЕР), претражује и приказује резултат.

Покренути ек08.пи Питхон скрипта, како следи:

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

Као што видите, веб прегледач Фирефок посетио је претраживач ДуцкДуцкГо.

Аутоматски је откуцао селен хк у пољу за текст за претрагу.

Чим је прегледач примио тастер Ентер, притисните (Кључеви.ЕНТЕР), приказао је резултат претраге.

Пример 6: Слање обрасца на В3Сцхоолс.цом

У примеру 5, предавање обрасца за претраживач ДуцкДуцкГо било је једноставно. Требало је само притиснути тастер Ентер. Али то неће бити случај са свим пријавама образаца. У овом примеру ћу вам показати сложеније руковање формом.

Прво посетите страницу ХТМЛ обрасци В3Сцхоолс.цом из веб прегледача Фирефок. Када се страница учита, требало би да видите пример обрасца. Ово је образац који ћемо послати у овом примеру.

Ако прегледате образац, Име поље за унос треба да има ид фнаме, тхе Презиме поље за унос треба да има ид име, и Дугме за слање треба да имају тип прихвати, као што видите на доњем снимку екрана.

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

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

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

Ево, претраживач.добити() метода отвара страницу ХТМЛ образаца В3сцхоолс у веб прегледачу Фирефок.

Тхе претраживач.финд_елемент_би_ид () метода проналази поља за унос помоћу ид-а фнаме и име и чува их у фнаме и име променљиве, односно.

Тхе фнаме.јасно() и име.јасно() методе бришу подразумевано име (Јохн) фнаме вредност и презиме (срна) име вредност из поља за унос.

Тхе фнаме.сенд_кеис () и име.сенд_кеис () методе типа Схахриар и Сховон у Име и Презиме поља за унос.

Тхе претраживач.финд_елемент_би_цсс_селецтор () метода бира Дугме за слање облика и чува га у субмитБуттон променљива.

Тхе субмитБуттон.сенд_кеис () метода шаље тастер Ентер притисните (Кључеви.ЕНТЕР) до Дугме за слање облика. Ова акција предаје образац.

Покренути ек09.пи Питхон скрипта, како следи:

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

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

Закључак

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

Преглед бежичног миша Мицрософт Сцулпт Тоуцх
Недавно сам читао о Мицрософт Сцулпт Тоуцх бежични миш и одлучио да га купи. Након што сам га неко време користио, одлучио сам да са њим поделим своје...
Екран Трацкпад и показивач миша АппиМоусе за Виндовс таблете
Корисницима таблета често недостаје показивач миша, посебно када су уобичајени за коришћење преносних рачунара. Паметни телефони и таблети на додир ос...
Средњи тастер миша не ради у оперативном систему Виндовс 10
Тхе средње дугме миша помаже вам да се крећете кроз дугачке веб странице и екране са пуно података. Ако се то заустави, на крају ћете користити тастат...