Selén

Selénová webová automatizácia s Pythonom

Selénová webová automatizácia s Pythonom
Každý používa web v jednom alebo druhom bode, takže je obrovskou výzvou pre vývojárov, aby sa ubezpečili, že ich webové aplikácie fungujú podľa očakávaní. V iných prípadoch by mohla byť veľmi užitočná webová automatizácia.

Aby bol akýkoľvek komerčný softvér úspešný, musí prejsť niekoľkými testami. Automatizácia by mohla byť užitočná pri používateľských testoch simulujúcich použitie softvéru rovnako, ako by to urobil používateľ. Je to tiež užitočné pri penetračných testoch, ako je napríklad pokus o prelomenie hesiel, vykonanie injekcií SQL atď.

Okrem testovania by mohla byť automatizácia webu veľmi užitočná na zošrotovanie ťažkých webov v JavaScripte.

Selén je jedným z najefektívnejších nástrojov pre automatizáciu webu. Je veľmi populárny aj v rôznych jazykoch a je k dispozícii v jazykoch ako Java, JavaScript.

Inštalácia

Selén je možné inštalovať v pythone pomocou pip modulu, ako je uvedené v nasledujúcom príkaze:

pip nainštaluj selén

Nainštalovalo by to knižnicu a potrebné závislosti, inštaláciu je možné potvrdiť jej importom v interaktívnej relácii.

$ python
Python 3.5.2 (predvolené, 14. septembra 2017, 22:51:06)
[GCC 5.4.0 20160609] v systéme Linux
Ďalšie informácie získate zadaním výrazu „help“, „copyright“, „credit“ alebo „license“.
>>> import selénu

Pretože sa nevyskytla žiadna chyba, znamená to, že naša inštalácia bola úspešná. Tým to však nekončí; je to preto, že selén pracuje ruka v ruke s prehľadávačmi, ako sú Chrome a Firefox, a na to, aby mohol plniť svoje úlohy, potrebuje ovládač z prehliadača.

Budeme sa pozerať na to, ako nainštalovať ovládače. Pre Mozilla Firefox si môžete stiahnuť jeho ovládač známy ako geckodriver zo stránky github. Ak ste používateľom prehliadača Chrome, môžete si stiahnuť jeho ovládač známy ako chromedriver z oficiálnej stránky.

Po stiahnutí potom na cestu pridáte ovládač. Osobne by som si chcel takýto súbor ponechať vo svojom / usr / local / bin adresár a poradil by som vám, aby ste urobili to isté.

Ak to chcete urobiť, nižšie uvedený príkaz by ho mal presunúť z aktuálneho adresára do priečinka kôš adresár.

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

Pridať geckodriver alebo chromedriver na cestu z tohto adresára, spustite nasledujúci príkaz.

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

Po pridaní ovládača požadovaného prehľadávača do cesty môžete spustením nasledujúcich krokov z interaktívnej relácie potvrdiť, či je všetko v poriadku.

Pre Firefox:

$ python
Python 3.5.2 (predvolené, 14. septembra 2017, 22:51:06)
[GCC 5.4.0 20160609] v systéme Linux
Ďalšie informácie získate zadaním výrazu „help“, „copyright“, „credit“ alebo „license“.
>>> z webového ovládača na selén
>>> webdriver.Firefox ()

Pre Chrome:

$ python
Python 3.5.2 (predvolené, 14. septembra 2017, 22:51:06)
[GCC 5.4.0 20160609] v systéme Linux
Ďalšie informácie získate zadaním výrazu „help“, „copyright“, „credit“ alebo „license“.
>>> z webového ovládača na selén
>>> driver = webdriver.Chrome ()

Po spustení tohto programu, ak sa zobrazí prehľadávač, je všetko v poriadku. Teraz môžeme pokračovať v práci so selénom.

Väčšina kódu pre zvyšok tohto článku by sa urobila v interaktívnej relácii, môžete ho však napísať do súboru rovnako ako obvyklý pythonovský skript.

Tiež by sme pracovali na vodič premenná z vyššie uvedeného kódu.

Navštívte webové stránky

Po otvorení webovej stránky môžete navštíviť ktorúkoľvek webovú stránku zavolaním na ikonu dostať metóda na vodič. Otvorený prehliadač potom načíta odovzdanú adresu, rovnako ako by to urobil, keď to urobíte sami.

Nezabudnite použiť protokol http: // alebo https: //, inak by ste sa museli vyrovnať s nepríjemnými chybami.

>>> vodič.get ("http: // google.com ")

Týmto by sa načítala domovská stránka Google.

Získava sa zdrojový kód

Teraz, keď sme sa naučili navštevovať webové stránky, môžeme zo navštívenej webovej stránky vyškrabať údaje.

Z vodič objektu, môžeme získať zdrojový kód zavolaním na page_source pomocou html môžete pomocou knižnice BeautifulSoup robiť, čo chcete.

>> vodič.page_source

Vyplnenie textových polí

Ak sme napríklad načítali domovskú stránku Google a chceme do vyhľadávacieho poľa zadať nejaké informácie; dá sa to ľahko urobiť.

Za týmto účelom pomocou prvku inšpektor skontrolujeme zdrojový kód a zobrazíme informácie o značke vyhľadávacieho poľa. Stačí kliknúť pravým tlačidlom myši na vyhľadávacie pole a vybrať preskúmať prvok.

Vo svojom počítači som dostal nasledujúce:

value = "" aria-label = "Hľadať" aria-haspopup = "false" role = "combobox" aria-autocomplete = "zoznam"
style = "border: medium none; padding: 0px; margin: 0px; height: auto; width: 100%;
pozadie: priehľadné
url ("data: image / gif; base64, R0lGODlhAQABAID / AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEA
Ow% 3D% 3D ") opakujte posúvanie 0% 0%; pozícia: absolútna; z-index: 6; doľava: 0px; obrys:
medium none; "dir =" ltr "spellcheck =" false "type =" text ">

Pomocou selénu môžeme vyberať prvky buď podľa názvu značky, ID, názvu triedy atď.

Môžu byť implementované pomocou nasledujúcich metód:

.find_element_by_id
.find_element_by_tag_name
.find_element_by_class_name
.find_element_by_name

Na webovej stránke google má vyhľadávacie pole ID prvý-ib, takže by sme našli prvok podľa id.

>>> search_box = ovládač.find_element_by_id ("lst-ib")

Teraz, keď sme našli prvok a uložili ho do a pole hľadania premennej, môžeme vykonať niektoré operácie vo vyhľadávacom poli.

>>> search_box.send_keys ("Planéta Zem")

Týmto by sa do poľa vložil text „Planéta Zem“.

>>> search_box.jasný()

Týmto by sa zadaný text vymazal z vyhľadávacieho poľa. Mali by ste použiť send_keys metóda znova, v ďalšej časti by sme klikali na tlačidlo hľadania, aby sme mali čo hľadať.

Kliknutím na pravé tlačidlá

Teraz, keď sme vyplnili vyhľadávacie pole niektorými informáciami, môžeme pokračovať a hľadať.

Rovnakým spôsobom, ako sme našli vyhľadávacie pole, rovnakým spôsobom nájdeme aj vyhľadávacie tlačidlo.

Vo svojom počítači som dostal nasledujúce:

type = "odoslať">

Z tohto pohľadu môžeme využiť atribút name. Získame ho pomocou kódu uvedeného nižšie:

>>> search_button = ovládač.find_element_by_name ("btnK")

Po nájdení požadovanej značky potom môžeme kliknúť na tlačidlo pomocou kliknite metóda.

>>> tlačidlo hľadania.kliknite ()

Buďte však opatrní, vďaka automatickým návrhom spoločnosti Google môžete nakoniec vyhľadať niečo iné.

Ak to chcete obísť, musíte okamžite stlačiť kláves Enter. Kľúče presahujú rámec tohto článku, ale aj tak je tento kód.

>>> zo selénu.webdriver.bežné.kľúče na import kľúčov
>>> search_box = ovládač.find_element_by_id ("lst-ib")
>>> search_box.send_keys ("Planéta Zem")
>>> search_box.send_keys (Klávesy.NÁVRAT)

Pri vyššie uvedenom kóde nemusíme klikať na tlačidlo vyhľadávania. Funguje to rovnako, ako keby sme po zadaní hľadaných hodnôt stlačili kláves Enter.

Táto metóda klikania na buttosn nefunguje iba s tlačidlami, ale funguje aj s odkazmi.

Robenie snímok obrazovky

Čítate dobre! Snímky obrazovky môžete robiť pomocou selénu a je to také ľahké ako v predchádzajúcich častiach.

Čo urobíme, je zavolať na uložiť_snímok obrazovky metóda na objekte ovládača, potom by sme zadali názov obrázka a nasnímala by sa snímka obrazovky.

>>> vodič.save_sc Screenshot („Planéta-zem.png ")

Skontrolujte, či má názov obrázka a .prípona png, inak by ste mohli skončiť s poškodeným obrázkom.

Po dokončení operácií môžete prehliadač zavrieť spustením nasledujúceho kódu:

>>> vodič.Zavrieť()

Záver

Selén je známy ako veľmi silný nástroj a jeho schopnosť používať ho sa považuje za životne dôležitú zručnosť pre automatizačných testerov. Selén dokáže oveľa viac, ako je popísané v tomto článku, pohyby klávesnice je možné skutočne replikovať, ako je to znázornené na obrázku Kľúče.NÁVRAT. Ak sa chcete o seléne dozvedieť viac, môžete si ho pozrieť dokumentácia, je to celkom jasné a ľahko použiteľné.

Hry Najlepšie hry Oculus App Lab
Najlepšie hry Oculus App Lab
Ak ste vlastníkom náhlavnej súpravy Oculus, musíte byť informovaní o bočnom nakladaní. Sideloading je proces inštalácie neuloženého obsahu do náhlavne...
Hry Top 10 hier, ktoré sa dajú hrať na Ubuntu
Top 10 hier, ktoré sa dajú hrať na Ubuntu
Platforma Windows je jednou z dominujúcich platforiem pre hry kvôli obrovskému percentu hier, ktoré sa dnes vyvíjajú na natívnu podporu systému Window...
Hry 5 najlepších arkádových hier pre Linux
5 najlepších arkádových hier pre Linux
V dnešnej dobe sú počítače vážne stroje používané na hranie hier. Ak nemôžete dosiahnuť nové najvyššie skóre, budete vedieť, čo tým myslím. V tomto pr...