Da bo komercialna programska oprema uspešna, mora opraviti nekaj testov. Avtomatizacija bi lahko bila koristna za uporabniške teste, ki bi simulirala uporabo programske opreme, tako kot uporabnik. Prav tako je uporaben za teste penetracije, kot je poskušanje razbijanja gesel, izvajanje vbrizgavanja SQL itd.
Poleg testiranja je spletna avtomatizacija lahko zelo priročna za strganje težkih spletnih mest z JavaScriptom.
Selen je eno najučinkovitejših orodij za spletno avtomatizacijo. Zelo priljubljen je tudi med različnimi jeziki in je na voljo v jezikih, kot sta Java in JavaScript.
Namestitev
Selen lahko namestite v python z uporabo pip modula, kot je prikazano v spodnjem ukazu:
pip namestite selenNamestil bi knjižnico in potrebne odvisnosti, namestitev lahko potrdite z uvozom v interaktivni seji.
$ pythonPython 3.5.2 (privzeto, 14. september 2017, 22:51:06)
[GCC 5.4.0 20160609] na Linuxu
Za več informacij vnesite "pomoč", "avtorske pravice", "dobropisi" ali "licenca".
>>> uvoz selena
Ker ni prišlo do napake, pomeni, da je bila naša namestitev uspešna. Vendar se tu še ne konča; to je zato, ker selen deluje z roko v roki z brskalniki, kot sta Chrome in Firefox, in potrebuje gonilnik iz brskalnika, da lahko nadaljuje s svojimi nalogami.
Ogledali si bomo, kako namestiti gonilnike. Za Mozilla Firefox lahko prenesete njegov gonilnik, znan kot geckodriver na strani github. Če uporabljate Chrome, lahko prenesete njegov gonilnik, znan kot kromedriver na uradni strani.
Po prenosu nato na pot dodate gonilnik. Osebno bi rad takšno datoteko hranil v svojem / usr / local / bin imenik, in svetoval bi vam, da storite enako.
Če želite storiti enako, naj ga spodnji ukaz premakne iz vašega trenutnega imenika v zabojnik imenik.
$ sudo mv geckodriver / usr / local / bin$ sudo mv chromedriver / usr / local / bin
Dodati geckodriver ali kromedriver za pot iz tega imenika zaženite naslednji ukaz.
$ export PATH = $ PATH: / usr / local / bin / geckodriver$ export PATH = $ PATH: / usr / local / bin / chromedriver
Ko na pot dodate gonilnik želenega brskalnika, lahko potrdite, ali vse deluje v redu, tako da iz interaktivne seje zaženete naslednje.
Za Firefox:
$ pythonPython 3.5.2 (privzeto, 14. september 2017, 22:51:06)
[GCC 5.4.0 20160609] v Linuxu
Za več informacij vnesite "pomoč", "avtorske pravice", "dobropisi" ali "licenca".
>>> iz spletnega pogona za uvoz selena
>>> spletni pogon.Firefox ()
Za Chrome:
$ pythonPython 3.5.2 (privzeto, 14. september 2017, 22:51:06)
[GCC 5.4.0 20160609] v Linuxu
Za več informacij vnesite "pomoč", "avtorske pravice", "dobropisi" ali "licenca".
>>> iz spletnega pogona za uvoz selena
>>> gonilnik = spletni voznik.Chrome ()
Po zagonu, če se prikaže brskalnik, vse deluje v redu. Zdaj lahko nadaljujemo s kul zadevami s selenom.
Večina kode za preostanek tega članka bi bila narejena v interaktivni seji, lahko pa jo napišete v datoteko, tako kot običajni skript python.
Prav tako bi delali na voznik spremenljivka iz zgornje kode.
Ogled spletnih strani
Ko je spletna stran odprta, lahko katero koli spletno stran obiščete tako, da pokličete dobili metoda na voznik. Odprti brskalnik nato naloži naslov, tako kot bi to storil sam.
Ne pozabite uporabiti http: // ali https: //, sicer bi se morali spoprijeti z neprijetnimi napakami.
>>> voznik.get ("http: // google.com ")S tem bi se naložila Googlova domača stran.
Pridobivanje izvorne kode
Zdaj, ko smo se naučili obiskovati spletne strani, lahko s obiskane spletne strani strgamo podatke.
Iz voznik predmeta, lahko dobimo izvorno kodo s klicem page_source atribut, lahko s pomočjo html s knjižnico BeautifulSoup naredite kar koli želite.
>> voznik.page_sourcePolnjenje besedilnih polj
Če smo na primer naložili Googlovo domačo stran in želimo v iskalno polje vnesti nekaj informacij; to je enostavno mogoče storiti.
Za to z elementom preglednika preverimo izvorno kodo in si ogledamo informacije o oznakah iskalnega polja. Če želite to narediti, preprosto z desno miškino tipko kliknite iskalno polje in izberite Preglej element.
Na svojem računalniku sem dobil naslednje:
value = "" aria-label = "Search" aria-haspopup = "false" role = "combobox" aria-autocomplete = "list"style = "border: medium none; padding: 0px; margin: 0px; height: auto; width: 100%;
ozadje: prozorno
url ("data: image / gif; base64, R0lGODlhAQABAID / AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEA
Ow% 3D% 3D ") ponovite drsenje 0% 0%; položaj: absolutno; z-indeks: 6; levo: 0px; oris:
srednja nobena; "dir =" ltr "spellcheck =" false "type =" text ">
S selenom lahko elemente izbiramo po imenu oznake, ID-ju, imenu razreda itd.
Lahko jih izvedemo z naslednjimi metodami:
.find_element_by_id.find_element_by_tag_name
.find_element_by_class_name
.find_element_by_name
Na Googlovi spletni strani ima iskalno polje ID lst-ib, tako bi našli element po id.
>>> polje iskanja = gonilnik.find_element_by_id ("lst-ib")Zdaj, ko smo našli element in ga shranili v iskalno polje spremenljivko, lahko v iskalnem polju izvedemo nekatere operacije.
>>> polje za iskanje.send_keys ("Planet Zemlja")S tem bi v polje vnesli besedilo »Planet Earth«.
>>> polje za iskanje.jasno ()S tem bi vneseno besedilo počistili iz iskalnega polja. Uporabite send_keys znova, v naslednjem razdelku bi kliknili gumb za iskanje, da bomo imeli kaj iskati.
Klik na desni gumb
Zdaj, ko smo napolnili iskalno polje z nekaj informacijami, lahko nadaljujemo z iskanjem.
Na enak način, kot smo našli iskalno polje, bomo našli iskalni gumb.
Na svojem računalniku sem dobil naslednje:
type = "submit">Če pogledamo to, lahko uporabimo atribut name. Lahko ga dobimo s spodnjo kodo:
>>> gumb iskanja = gonilnik.find_element_by_name ("btnK")Po iskanju želene oznake lahko nato kliknemo gumb s pomočjo kliknite metoda.
>>> gumb za iskanje.kliknite ()Vendar bodite previdni, ker lahko Googlovi samodejni predlogi na koncu poiščete kaj drugega.
Če želite to zaobiti, morate tipkovnico takoj pritisniti na tipko enter. Tipke sicer ne spadajo v področje tega članka, toda tukaj je vseeno koda.
>>> iz selena.spletni pogon.običajni.tipke za uvoz ključev>>> polje iskanja = gonilnik.find_element_by_id ("lst-ib")
>>> polje za iskanje.send_keys ("Planet Zemlja")
>>> polje za iskanje.send_keys (Tipke.VRNITEV)
Z zgornjo kodo nam ni treba klikniti gumba za iskanje. Deluje tako, kot če bi po vnosu iskalnih vrednosti pritisnili tipko enter.
Ta način klikanja buttosn ne deluje samo z gumbi, temveč tudi s povezavami.
Posnetek zaslona
Prav ste prebrali! Posnamete lahko posnetke zaslona s selenom in je tako enostavno kot prejšnji razdelki.
Kar poklicali bomo shrani_screenshot na gonilniškem objektu, nato vnesemo ime slike in posname se posnetek zaslona.
>>> voznik.save_screenshot ("Planet-earth.png ")Prepričajte se, da ime slike vsebuje .razširitev png, sicer lahko pride do poškodovane slike.
Ko končate z operacijami, lahko brskalnik zaprete tako, da zaženete naslednjo kodo:
>>> voznik.zapri ()Zaključek
Selen je znan kot zelo zmogljivo orodje in njegova sposobnost uporabe šteje za ključno veščino preizkuševalcev avtomatizacije. Selen lahko naredi veliko več, kot je razloženo v tem članku, premike tipkovnice lahko dejansko ponovimo, kot je prikazano z Ključi.VRNITEV. Če želite izvedeti več o selenu, ga lahko preverite dokumentacijo, je povsem jasen in enostaven za uporabo.