Selenium

„Selenium Web Automation with Python“

„Selenium Web Automation with Python“
Visi vienu ar kitu momentu naudojasi žiniatinkliu, todėl kūrėjams reikalingas didžiulis raginimas užtikrinti, kad jų žiniatinklio programos veiktų pagal paskirtį. Kitu atveju tai gali būti labai naudinga interneto automatizavimui.

Kad bet kuri komercinė programinė įranga būtų sėkminga, jai reikia atlikti keletą bandymų. Automatika gali būti naudinga atliekant vartotojo bandymus, imituojant programinės įrangos naudojimą taip, kaip naudotojas. Tai taip pat naudinga įsiskverbimo testams, pvz., Bandant nulaužti slaptažodžius, atlikti SQL injekcijas ir pan.

Be testavimo, žiniatinklio automatika gali būti labai patogu nuskaityti „JavaScript“ sudėtingas svetaines.

Selenas yra viena iš efektyviausių žiniatinklio automatizavimo priemonių. Jis taip pat labai populiarus tarp skirtingų kalbų, prieinamas tokiomis kalbomis kaip „Java“, „JavaScript“.

Montavimas

Seleną galima įdiegti python naudojant pip modulį, kaip parodyta žemiau esančioje komandoje:

pip montuoti seleną

Tai įdiegtų biblioteką ir reikalingas priklausomybes, diegimą galima patvirtinti importuojant į interaktyvų seansą.

$ python
„Python 3“.5.2 (numatytasis, 2017 m. Rugsėjo 14 d., 22:51:06)
[PĮB 5.4.0 20160609] „Linux“
Norėdami gauti daugiau informacijos, įveskite „pagalba“, „autorių teisės“, „kreditai“ arba „licencija“.
>>> importuoti seleną

Kadangi klaidos nebuvo, tai reiškia, kad mūsų diegimas buvo sėkmingas. Tačiau tuo viskas nesibaigia; taip yra todėl, kad selenas veikia kartu su tokiomis naršyklėmis kaip „Chrome“ ir „Firefox“, ir jam reikia naršyklės tvarkyklės, kad galėtų atlikti savo pareigas.

Pažvelgsime, kaip įdiegti tvarkykles. „Mozilla Firefox“ galite atsisiųsti jo tvarkyklę, žinomą kaip gekodriveris iš gitubo puslapio. Jei naudojate „Chrome“, galite atsisiųsti jo tvarkyklę, vadinamą chromedriver iš oficialios svetainės.

Po atsisiuntimo pridėsite tvarkyklę prie kelio. Asmeniškai norėčiau tokį failą laikyti savo aplanke / usr / local / bin katalogą, ir aš patarčiau tai padaryti.

Jei norite padaryti tą patį, toliau nurodyta komanda turėtų perkelti jį iš dabartinio katalogo į šiukšliadėžė kataloge.

$ sudo mv geckodriver / usr / local / bin
$ sudo mv chromedriver / usr / local / bin

Pridėti gekodriveris arba chromedriver Norėdami patekti iš to katalogo, vykdykite šią komandą.

$ export PATH = $ PATH: / usr / local / bin / geckodriver
$ export PATH = $ PATH: / usr / local / bin / chromedriver

Pridėję norimos naršyklės tvarkyklę prie kelio, galite patvirtinti, ar viskas gerai, vykdydami šiuos veiksmus iš interaktyvios sesijos.

„Firefox“:

$ python
„Python 3“.5.2 (numatytasis, 2017 m. Rugsėjo 14 d. 22:51:06)
[PĮB 5.4.0 20160609] „Linux“
Norėdami gauti daugiau informacijos, įveskite „pagalba“, „autorių teisės“, „kreditai“ arba „licencija“.
>>> iš seleno importo žiniatinklio tvarkyklės
>>> žiniatinklio tvarkyklė.„Firefox“ ()

„Chrome“:

$ python
„Python 3“.5.2 (numatytasis, 2017 m. Rugsėjo 14 d., 22:51:06)
[PĮB 5.4.0 20160609] „Linux“
Norėdami gauti daugiau informacijos, įveskite „pagalba“, „autorių teisės“, „kreditai“ arba „licencija“.
>>> iš seleno importo žiniatinklio tvarkyklės
>>> tvarkyklė = žiniatinklio tvarkyklė.„Chrome“ ()

Paleidus tai, jei atsiranda naršyklė, viskas veikia gerai. Dabar mes galime tęsti įdomius dalykus su Selenu.

Didžioji dalis likusio šio straipsnio kodo bus padaryta interaktyvioje sesijoje, tačiau jį galite įrašyti į failą, kaip ir įprastą „Python“ scenarijų.

Be to, mes dirbtume vairuotojas kintamasis iš aukščiau esančio kodo.

Visting tinklalapiai

Atidarius tinklalapį, galite apsilankyti bet kuriame tinklalapyje paskambinę gauti metodas vairuotojas. Tada atidaryta naršyklė įkelia įvestą adresą, kaip ir tada, kai tai padarysite patys.

Nepamirškite naudoti http: // arba https: //, nes kitaip turėtumėte išspręsti nemalonias klaidas.

>>> vairuotojas.gauti ("http: // google.com ")

Tai įkeltų „Google“ pagrindinį puslapį.

Gaunamas šaltinio kodas

Dabar, kai jau išmokome lankytis tinklalapiuose, galime nukopijuoti duomenis iš aplankyto tinklalapio.

Nuo vairuotojas objektą, šaltinio kodą galime gauti paskambinę puslapio_ šaltinis atributą, tada naudodamiesi „BeautifulSoup“ biblioteka galite padaryti viską, ko tik norite naudodami HTML.

>> vairuotojas.puslapio_ šaltinis

Užpildyti teksto laukelius

Pavyzdžiui, jei mes įkėlėme „Google“ pagrindinį puslapį ir norime paieškos laukelyje įvesti tam tikrą informaciją; tai lengvai galima padaryti.

Norėdami tai padaryti, mes naudojame inspektoriaus elementą, kad patikrintume šaltinio kodą ir pamatytume paieškos laukelio informaciją apie žymą. Norėdami tai padaryti, tiesiog dešiniuoju pelės mygtuku spustelėkite paieškos laukelį ir pasirinkite Tikrinti elementą.

Savo mašinoje gavau:

value = "" aria-label = "Ieškoti" aria-haspopup = "false" role = "combobox" aria-autocomplete = "list"
style = "border: medium none; padding: 0px; margin: 0px; height: auto; plotis: 100%;
fonas: skaidrus
url ("duomenys: image / gif; base64, R0lGODlhAQABAID / AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEA
Ow% 3D% 3D ") pakartokite slinkimą 0% 0%; pozicija: absoliutus; z indeksas: 6; kairė: 0 taškų; kontūras:
terpė nėra; "dir =" ltr "spellcheck =" false "type =" text ">

Naudodami seleną, elementus galime pasirinkti pagal žymos pavadinimą, ID, klasės pavadinimą ir kt.

Jie gali būti įgyvendinami šiais būdais:

.find_element_by_id
.find_element_by_tag_name
.find_element_by_ class_name
.find_element_by_name

„Google“ tinklalapyje paieškos laukelyje yra ID lst-ib, taigi elementą rastume pagal ID.

>>> search_box = tvarkyklė.find_element_by_id ("lst-ib")

Dabar, kai radome elementą ir išsaugojome jį a search_box kintamąjį, galime atlikti kai kurias operacijas paieškos laukelyje.

>>> paieškos_dėžutė.send_keys ("Žemės planeta")

Tai laukelyje įvestų tekstą „Žemės planeta“.

>>> paieškos_dėžutė.aišku ()

Tai išvalys įvestą tekstą iš paieškos laukelio. Turėtumėte naudoti send_keys metodas dar kartą, kitame skyriuje mes spustelėsime paieškos mygtuką, kad turėtume ko ieškoti.

Spustelėjus dešinius mygtukus

Dabar, užpildę paieškos laukelį tam tikros informacijos, galime tęsti ir ieškoti.

Paieškos laukelį radome taip pat, kaip ir paieškos mygtuką.

Savo mašinoje gavau:

type = "pateikti">

Žvelgdami į tai, galime panaudoti vardo atributą. Tai galime gauti naudodami žemiau pateiktą kodą:

>>> paieškos_ mygtukas = tvarkyklė.find_element_by_name ("btnK")

Radę norimą žymą, tada galime spustelėti mygtuką naudodami spustelėkite metodas.

>>> paieškos mygtukas.spustelėkite ()

Tačiau būkite atsargūs, nes dėl „Google“ automatinių pasiūlymų galite ieškoti ko nors kito.

Norėdami tai apeiti, turite nedelsdami priversti klaviatūrą paspausti įvedimo klavišą. Raktai nepatenka į šio straipsnio taikymo sritį, bet čia vis tiek yra kodas.

>>> iš seleno.žiniatinklio tvarkyklė.paplitęs.raktai importuoja raktus
>>> search_box = tvarkyklė.find_element_by_id ("lst-ib")
>>> paieškos_dėžutė.send_keys ("Žemės planeta")
>>> paieškos_dėžutė.send_keys (raktai.GRĄŽINTI)

Turėdami aukščiau esantį kodą, neturime spustelėti paieškos mygtuko. Tai veikia taip pat, kaip ir tada, kai įvedę paieškos reikšmes paspausime klavišą „Enter“.

Šis buttosn įrašymo būdas veikia ne tik su mygtukais, bet ir su nuorodomis.

Padaryti ekrano kopijas

Jūs teisingai perskaitėte! Galite padaryti ekrano kopijas naudodami seleną, ir tai taip pat lengva, kaip ir ankstesniuose skyriuose.

Ką mes padarysime, tai paskambinsime save_screenshot metodas vairuotojo objekte, tada mes perdavėme paveikslėlio pavadinimą ir bus padaryta ekrano kopija.

>>> vairuotojas.save_screenshot ("Žemės planeta.png ")

Įsitikinkite, kad vaizdo pavadinime yra a .png plėtinys, kitaip galite sugadinti vaizdą.

Baigę operacijas, galite uždaryti naršyklę paleidę šį kodą:

>>> vairuotojas.Uždaryti()

Išvada

Selenas yra žinomas kaip labai galingas įrankis, o galimybė jį naudoti yra laikoma gyvybiškai svarbiu automatikos bandytojų įgūdžiu. Selenas gali padaryti daug daugiau, nei aptarta šiame straipsnyje, klaviatūros judesius iš tikrųjų galima pakartoti taip, kaip parodyta Raktai.GRĮŽTI. Jei norite sužinoti daugiau apie seleną, galite jį patikrinti dokumentacija, tai gana aišku ir paprasta naudoti.

Kaip padidinti FPS sistemoje „Linux“?
FPS reiškia Kadrai per sekundę. FPS užduotis yra išmatuoti kadrų greitį atkuriant vaizdo įrašus ar žaidimus. Paprastais žodžiais, nepertraukiamų viso ...
Populiariausi „Oculus App Lab“ žaidimai
Jei esate „Oculus“ laisvų rankų įrangos savininkas, turite žinoti, kaip krauti iš šono. Šoninis įkėlimas yra ne parduotuvėje esančio turinio įdiegimas...
10 geriausių žaidimų, kuriuos reikia žaisti naudojant „Ubuntu“
„Windows“ platforma buvo viena iš dominuojančių žaidimų platformų dėl didžiulio procento žaidimų, kurie šiandien kuriami natūraliai palaikant „Windows...