Selen

Selénová automatizace webu s Pythonem

Selénová automatizace webu s Pythonem
Každý používá web v jednom nebo druhém bodě, takže je velkou výzvou pro vývojáře, aby se ujistili, že jejich webové aplikace fungují podle očekávání. Jinak by to mohlo být velmi užitečné.

Aby byl jakýkoli komerční software úspěšný, musí projít několika testy. Automatizace by mohla být užitečná pro uživatelské testy, simulující použití softwaru stejně, jako by to udělal uživatel. Je také užitečné pro penetrační testy, jako je pokus o prolomení hesel, provádění SQL injekcí atd.

Kromě testování může být automatizace webu velmi užitečná pro škrábání těžkých webů JavaScriptu.

Selen je jedním z nejúčinnějších nástrojů pro automatizaci webu. Je také velmi populární mezi různými jazyky a je k dispozici v jazycích jako Java, JavaScript.

Instalace

Selen lze nainstalovat v pythonu pomocí pip modulu, jak je znázorněno v níže uvedeném příkazu:

pip nainstalujte selen

Nainstalovalo by knihovnu a potřebné závislosti, instalaci lze potvrdit importem v interaktivní relaci.

$ python
Python 3.5.2 (výchozí, 14. září 2017, 22:51:06)
[GCC 5.4.0 20160609] na Linuxu
Další informace získáte zadáním „help“, „copyright“, „credit“ nebo „license“.
>>> import selenu

Protože nedošlo k žádné chybě, znamená to, že naše instalace proběhla úspěšně. Tím to však nekončí; je to proto, že selen pracuje ruku v ruce s prohlížeči, jako jsou Chrome a Firefox, a potřebuje ovladač z prohlížeče, aby mohl plnit své úkoly.

Budeme zkoumat, jak nainstalovat ovladače. Pro Mozilla Firefox si můžete stáhnout jeho ovladač známý jako geckodriver ze stránky github. Pokud jste uživatelem prohlížeče Chrome, můžete si stáhnout jeho ovladač známý jako chromedriver z oficiálních stránek.

Po stažení pak do cesty přidáte ovladač. Osobně bych si rád nechal takový soubor v mém / usr / local / bin adresář a já bych vám poradil, abyste udělali totéž.

Pokud byste chtěli udělat totéž, měl by níže uvedený příkaz přesunout z aktuálního adresáře do zásobník adresář.

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

Přidat geckodriver nebo chromedriver cestu z tohoto adresáře, spusťte následující příkaz.

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

Po přidání ovladače požadovaného prohlížeče do cesty můžete potvrdit, zda je vše v pořádku, spuštěním následujícího z interaktivní relace.

Pro Firefox:

$ python
Python 3.5.2 (výchozí, 14. září 2017, 22:51:06)
[GCC 5.4.0 20160609] na Linuxu
Další informace získáte zadáním „help“, „copyright“, „credit“ nebo „license“.
>>> z webového ovladače pro import selenu
>>> webdriver.Firefox()

Pro Chrome:

$ python
Python 3.5.2 (výchozí, 14. září 2017, 22:51:06)
[GCC 5.4.0 20160609] na Linuxu
Další informace získáte zadáním „help“, „copyright“, „credit“ nebo „license“.
>>> z webového ovladače pro import selenu
>>> driver = webdriver.Chrome ()

Po spuštění, pokud se objeví prohlížeč, pak vše funguje dobře. Nyní můžeme pokračovat se skvělými věcmi se selenem.

Většina kódu pro zbytek tohoto článku by byla provedena v interaktivní relaci, ale můžete jej napsat do souboru, stejně jako obvyklý pythonovský skript.

Také bychom pracovali na Řidič proměnná z výše uvedeného kódu.

Navštěvující webové stránky

Po otevření webové stránky můžete libovolnou webovou stránku navštívit zavoláním na dostat metoda zapnuta Řidič. Otevřený prohlížeč poté načte předanou adresu, stejně jako když to uděláte sami.

Nezapomeňte použít http: // nebo https: //, jinak byste se museli vypořádat s nepříjemnými chybami.

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

Tím by se načetla domovská stránka Google.

Získání zdrojového kódu

Nyní, když jsme se naučili navštěvovat webové stránky, můžeme z navštívené webové stránky škrábat data.

Z Řidič objektu, můžeme získat zdrojový kód voláním page_source s html pak můžete pomocí knihovny BeautifulSoup dělat, co chcete.

>> řidič.page_source

Vyplňování textových polí

Pokud jsme například načetli domovskou stránku Google a chceme do vyhledávacího pole zadat nějaké informace; lze to snadno provést.

K tomu použijeme prvek inspektora ke kontrole zdrojového kódu a zobrazení informací o značce vyhledávacího pole. Chcete-li to provést, jednoduše klikněte pravým tlačítkem na vyhledávací pole a vyberte zkontrolovat prvek.

Na svém počítači jsem dostal následující:

value = "" aria-label = "Hledat" aria-haspopup = "false" role = "combobox" aria-autocomplete = "seznam"
style = "border: medium none; padding: 0px; margin: 0px; height: auto; width: 100%;
pozadí: transparentní
url ("data: image / gif; base64, R0lGODlhAQABAID / AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEA
Ow% 3D% 3D ") opakujte posouvání 0% 0%; pozice: absolutní; z-index: 6; vlevo: 0px; obrys:
medium none; "dir =" ltr "spellcheck =" false "type =" text ">

Se selenem můžeme vybrat prvky buď podle názvu tagu, id, názvu třídy atd.

Lze je implementovat následujícími metodami:

.find_element_by_id
.find_element_by_tag_name
.find_element_by_class_name
.find_element_by_name

Na webové stránce google má vyhledávací pole ID první ib, takže bychom našli prvek podle id.

>>> search_box = ovladač.find_element_by_id ("lst-ib")

Nyní, když jsme našli prvek a uložili jej do a vyhledávací pole proměnné, můžeme provést některé operace ve vyhledávacím poli.

>>> vyhledávací_box.send_keys ("Planeta Země")

Tím by se do pole vložil text „Planeta Země“.

>>> vyhledávací_box.Průhledná()

Tím by se vymazal zadaný text z vyhledávacího pole. Měli byste použít send_keys metoda znovu, v další části bychom klikali na tlačítko vyhledávání, abychom měli co hledat.

Kliknutím na pravá tlačítka

Nyní, když jsme vyplnili vyhledávací pole některými informacemi, můžeme pokračovat a hledat.

Stejným způsobem, jako jsme našli vyhledávací pole, se stejným způsobem najdeme vyhledávací tlačítko.

Na svém počítači jsem dostal následující:

type = "odeslat">

Podíváme-li se na to, můžeme použít atribut name. Můžeme to získat pomocí níže uvedeného kódu:

>>> search_button = ovladač.find_element_by_name ("btnK")

Po nalezení požadované značky můžeme kliknout na tlačítko pomocí klikněte metoda.

>>> tlačítko vyhledávání.klikněte ()

Buďte opatrní, ale díky automatickým návrhům Google můžete nakonec hledat něco jiného.

Chcete-li to obejít, musíte klávesnici okamžitě stisknout na klávesu Enter. Klávesy přesahují rámec tohoto článku, ale i tak je zde kód.

>>> ze selenu.webdriver.běžný.klíče importovat klíče
>>> search_box = ovladač.find_element_by_id ("lst-ib")
>>> vyhledávací_box.send_keys ("Planeta Země")
>>> vyhledávací_box.send_keys (klíče.VRÁTIT SE)

S výše uvedeným kódem nemusíme klikat na tlačítko vyhledávání. Funguje to stejně, jako kdybychom po zadání hodnot hledání stiskli klávesu Enter.

Tato metoda klikání na buttosn nefunguje pouze s tlačítky, ale také s odkazy.

Pořizování snímků obrazovky

Četl jsi správně! Snímky obrazovky můžete pořizovat pomocí selenu a je to stejně snadné jako v předchozích částech.

Co uděláme, je zavolat save_sc Screenshot metoda na objektu ovladače, pak bychom předali název obrázku a snímek by byl pořízen.

>>> řidič.save_sc Screenshot („Planeta Země.png ")

Ujistěte se, že název obrázku má a .přípona png, jinak byste mohli skončit s poškozeným obrázkem.

Po dokončení operací můžete prohlížeč zavřít spuštěním následujícího kódu:

>>> řidič.zavřít()

Závěr

Selen je znám jako velmi silný nástroj a jeho schopnost používat je považována za zásadní dovednost pro automatizační testery. Selen může dělat mnohem víc, než je popsáno v tomto článku, pohyby klávesnice lze ve skutečnosti replikovat, jak je znázorněno na Klíče.VRÁTIT SE. Pokud se chcete o selenu dozvědět více, můžete si jej prohlédnout dokumentace, je to celkem jasné a snadno použitelné.

Hry Nejlepší hry pro ruční sledování
Nejlepší hry pro ruční sledování
Oculus Quest nedávno představil skvělou myšlenku ručního sledování bez ovladačů. S neustále se zvyšujícím počtem her a aktivit, které provádějí podpor...
Hry Jak zobrazit překrytí OSD v linuxových aplikacích a hrách na celou obrazovku
Jak zobrazit překrytí OSD v linuxových aplikacích a hrách na celou obrazovku
Hraní her na celou obrazovku nebo používání aplikací v režimu celé obrazovky bez rozptýlení vás mohou odříznout od příslušných systémových informací v...
Hry Top 5 karet pro zachycení hry
Top 5 karet pro zachycení hry
Všichni jsme viděli a milovali streamování her na YouTube. PewDiePie, Jakesepticye a Markiplier jsou jen někteří z nejlepších hráčů, kteří vydělali mi...