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_ šaltinisUž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.