Selen

Používání selenu s ovladačem Firefoxu

Používání selenu s ovladačem Firefoxu
Selen je skvělý nástroj pro testování prohlížečů, automatizaci webu a škrábání webů. Selen může ovládat většinu moderních webových prohlížečů. i.E., Firefox, Chrome, Chromium, Opera, Apple Safari. K ovládání prohlížeče potřebuje Selenium nástroj s názvem Web driver. Většina moderních prodejců prohlížečů poskytuje software webových ovladačů pro své webové prohlížeče.

Chcete-li ovládat webový prohlížeč Mozilla Firefox ze selenu, musíte použít webový ovladač Gecko.

V tomto článku vám ukážu, jak nastavit selen pro spouštění testů prohlížeče, automatizaci webu, škrábání webu pomocí webového prohlížeče Mozilla Firefox. Pojďme tedy začít.

Předpoklady:

Chcete-li vyzkoušet příkazy a příklady tohoto článku, musíte mít,

1) Ve vašem počítači je nainstalována distribuce Linuxu (nejlépe Ubuntu).
2) Python 3 nainstalovaný ve vašem počítači.
3) PIP 3 nainstalovaný ve vašem počítači.
4) Mozilla Firefox nainstalovaný ve vašem počítači.

Mnoho článků o těchto tématech najdete na LinuxHint.com. Nezapomeňte je zkontrolovat, pokud potřebujete pomoc.

Příprava virtuálního prostředí Pythonu 3 na projekt:

Virtuální prostředí Pythonu se používá k vytvoření izolovaného adresáře projektu Pythonu. Moduly Pythonu, které instalujete pomocí PIP, se nainstalují pouze do adresáře projektu, nikoli globálně.

Krajta virtuální modul slouží ke správě virtuálních prostředí Pythonu.

Můžete si nainstalovat Python virtuální modul globálně pomocí PIP 3 následujícím způsobem:

$ sudo pip3 install virtualenv

Krajta virtuální by měl být nainstalován.

Vytvořte adresář projektu selen-firefox / ve vašem aktuálním pracovním adresáři takto:

$ mkdir -pv selenium-firefox / ovladače

Přejděte do nově vytvořeného adresáře projektu selen-firefox / jak následuje:

$ cd selenium-firefox /

Vytvořte virtuální prostředí Pythonu v adresáři projektu pomocí následujícího příkazu:

$ virtualenv .venv

Virtuální prostředí Pythonu by mělo být vytvořeno ve vašem adresáři projektu.

Aktivujte virtuální prostředí Pythonu z adresáře projektu pomocí následujícího příkazu:

$ zdroj .env / bin / aktivovat

Instalace knihovny Selen Python Library:

Knihovna selenu je k dispozici v oficiálním úložišti Python PyPI.

Knihovnu Selenium Python můžete nainstalovat pomocí PIP 3 následovně:

$ pip3 nainstalujte selen

Měla by být nainstalována knihovna Selenium Python.

Instalace ovladače Firefox Gecko:

Chcete-li stáhnout ovladač Firefox Gecko, navštivte stránku vydání GitHubu mozilla / geckodriver z vašeho oblíbeného webového prohlížeče.

Jak vidíte, v0.26.0 je nejnovější verze ovladače Firefox Gecko v době psaní tohoto článku.

Chcete-li stáhnout ovladač Firefox Gecko, posuňte se trochu dolů a klikněte na tar geckodriver pro Linux.archiv gz v závislosti na architektuře operačního systému.

Pokud používáte 32bitový operační systém, klikněte na ikonu geckodriver-v0.26.0-linux32.dehet.gz odkaz.

Pokud používáte 64bitový operační systém, klikněte na ikonu geckodriver-v0.26.0-linuxx64.dehet.gz odkaz.

Stáhnu si 64bitovou verzi ovladače Firefox Gecko.

Váš prohlížeč by vás měl vyzvat k uložení archivu. Vybrat Uložení souboru a klikněte na OK.

Ovladač Firefox Gecko by měl být stažen.

Archiv ovladačů Firefox Gecko je třeba stáhnout v ~ / Ke stažení adresář.

Můžete extrahovat geckodriver-v0.26.0-linux64.dehet.gz archiv z ~ / Ke stažení adresář do Řidiči/ adresář vašeho projektu pomocí následujícího příkazu:

$ tar -xzf ~ / Soubory ke stažení / geckodriver-v0.26.0-linux64.dehet.gz -C ovladače /

Jakmile je archiv Firefox Gecko Driver extrahován, nový binární soubor geckodriver by měl být vytvořen v Řidiči/ adresář vašeho projektu, jak vidíte na obrázku níže.

Začínáme se selenem pomocí ovladače Firefox Gecko:

V této části vám ukážu, jak nastavit svůj první skript Selenium Python, abyste otestovali, zda ovladač Firefox Gecko funguje.

Nejprve vytvořte nový skript v Pythonu ex00.py do adresáře projektu a zadejte do něj následující řádky.

z webového ovladače pro import selenu
ze selenu.webdriver.běžný.klíče importovat klíče
prohlížeč = webdriver.Firefox (executable_path = "./ drivers / geckodriver ")
prohlížeč.get ('https: // www.linuxhint.com ')
print ('Název:% s'% prohlížeč.titul)
prohlížeč.přestat()

Až budete hotovi, uložte ex00.py Skript v Pythonu.

Řádky 1 a 2 importují všechny požadované součásti z selen Knihovna Pythonu.

Řádek 4 vytvoří objekt webového ovladače Firefoxu pomocí webdriver.Firefox() metoda a uloží ji do a prohlížeč proměnná. The spustitelná_cesta Argument se používá k tomu, aby řekl webovému ovladači, kde má hledat binární soubor ovladače Firefox Gecko. V tomto případě geckodriver binární z Řidiči/ adresář projektu.

Na řádku 6, prohlížeč.dostat() metoda se načte linuxhint.com ve webovém prohlížeči Firefox.

Po dokončení načítání webu se na řádku 7 vytiskne název webu zde, prohlížeč.titul vlastnost se používá k přístupu k názvu webové stránky.

Řádek 8 zavírá webový prohlížeč Firefox pomocí prohlížeč.přestat() metoda.

Můžete spustit skript Pythonu ex00.py s následujícím příkazem:

$ python3 ex00.py

Selenium by mělo otevřít webový prohlížeč Firefox a navštívit linuxhint.com automaticky.

Jakmile se stránka načte, měla by na konzole vytisknout název webu a webový prohlížeč by se měl automaticky zavřít.

Selenium tedy s ovladačem Firefox Gecko pracuje správně.

Příklad 01: Spuštění Firefoxu v bezhlavém režimu pomocí selenu

Selenium můžete také spustit s ovladačem Firefox Gecko Driver v bezhlavém režimu. Bezhlavý režim Selenium Firefox nevyžaduje žádné grafické uživatelské rozhraní nainstalované ve vašem počítači. Selenium Firefox tedy budete moci provozovat na libovolných bezhlavých serverech Linux.

Nejprve vytvořte nový skript v Pythonu ex01.py do adresáře projektu a zadejte do něj následující řádky kódů.

z webového ovladače pro import selenu
ze selenu.webdriver.Firefox.možnosti importu
ze selenu.webdriver.běžný.klíče importovat klíče
firefoxOptions = Možnosti ()
firefoxMožnosti.add_argument ("- bez hlavy")
prohlížeč = webdriver.Firefox (executable_path = "./ drivers / geckodriver ", options = firefoxOptions)
prohlížeč.get ('https: // www.linuxhint.com ')
print ('Název:% s'% prohlížeč.titul)
prohlížeč.přestat()

Až budete hotovi, uložte ex01.py Skript v Pythonu.

Řádek 1 a řádek 3 jsou stejné jako řádek 1 a řádek 2 ex00.py Skript v Pythonu.

Řádek 2 importuje Firefox Možnosti z selen knihovna.

Řádek 5 vytvoří objekt Možnosti Firefoxu a uloží jej do souboru firefoxMožnosti proměnná.

Řádek 6 používá firefoxMožnosti.add_argument () způsob přidání -bezhlavý Příkazový řádek prohlížeče Firefox na firefoxMožnosti objekt.

Na řádku 8, možnosti argument se používá k předání firefoxMožnosti při inicializaci webového ovladače Firefoxu pomocí webdriver.Firefox() metoda.

Zbytek řádků ex01.py skript je stejný jako skript ex00.py.

Můžete spustit skript Pythonu ex01.py s následujícím příkazem:

$ python3 ex01.py

Jak vidíte, název webové stránky (linuxhint.com) je vytištěn na konzole bez otevření jakékoli grafické verze webového prohlížeče Firefox.

Jak vidíte, Selenium také pracuje na bezhlavém prostředí Ubuntu, kde nemám nainstalované žádné grafické uživatelské rozhraní.

Nyní, když víte, jak předat -bezhlavý Příznak / volba pro příkazový řádek Firefoxu pomocí ovladače Selenium Firefox Gecko, můžete předat i jakékoli jiné příznaky / možnosti pro příkazový řádek Firefoxu.

Všechny podporované příznaky / možnosti příkazového řádku prohlížeče Firefox najdete v možnostech příkazového řádku - Mozilla | Stránka MDN.

Příklad 02: Extrakce Lorem Ipsum pomocí selenu

V této části vám ukážu, jak provádět základní sešrotování webu pomocí ovladače Selenium Firefox Gecko.

Nejprve navštivte stránku Lorem Ipsum Generator z webového prohlížeče Firefox. Jak vidíte, stránka vygenerovala 5 náhodných odstavců. Pojďme extrahovat veškerý vygenerovaný text (všech 5 odstavců) z této stránky.

Než začnete extrahovat informace z webové stránky, musíte znát strukturu HTML obsahu webové stránky.

Strukturu HTML obsahu, který chcete extrahovat, můžete snadno najít pomocí Nástroj pro vývojáře Firefoxu. Otevřít Nástroj pro vývojáře Firefoxu, stiskněte pravé tlačítko myši (RMB) na stránce a klikněte na Zkontrolovat prvek (Q).

Nástroj pro vývojáře Firefoxu by měl být otevřen. Klikněte na Zkontrolovat ikonu () jak je uvedeno na snímku obrazovky níže.

Umístěte kurzor na první odstavec, jak je znázorněno na následujícím obrázku. Poté jej vyberte levým tlačítkem myši (LMB).

Struktura HTML odstavců by měla být zobrazena v souboru Kontrolovat záložka Nástroj pro vývojáře Firefoxu. Jak vidíte, vygenerované odstavce lorem ipsum jsou uvnitř a div značka, která má id lipum.

Chcete-li extrahovat odstavce lorem ipsum pomocí ovladače Selenium Firefox Gecko, vytvořte nový skript Pythonu ex02.py do adresáře projektu a zadejte do něj následující řádky kódů.

z webového ovladače pro import selenu
ze selenu.webdriver.Firefox.možnosti importu
ze selenu.webdriver.běžný.klíče importovat klíče
firefoxOptions = Možnosti ()
firefoxMožnosti.add_argument ("- bez hlavy")
prohlížeč = webdriver.Firefox (executable_path = "./ drivers / geckodriver ", options = firefoxOptions)
prohlížeč.get ('https: // www.lipum.com / feed / html ')
lipsum = prohlížeč.find_element_by_id ('lipsum')
tisk (lipum.text)
prohlížeč.přestat()

Až budete hotovi, uložte ex02.py Skript v Pythonu.

Řádek 10 načte stránku generátoru lorem ipsum pomocí prohlížeč.dostat() metoda.

Obsah lorem ipsum je uvnitř a div značka s id lipum. Řádek 12 používá prohlížeč.find_element_by_id () metoda pro výběr z webové stránky a uložení do lipum proměnná.

Řádek 13 vytiskne vygenerovaný obsah lorem ipsum na konzoli. Tady text Vlastnost se používá pro přístup k obsahu div prvek s id lipum.

Nyní spusťte skript Pythonu ex02.py jak následuje:

$ python3 ex02.py

Jak vidíte, selen správně extrahoval obsah lorem ipsum z webové stránky.

Spuštění skriptu Python ex02.py opět vám poskytne jiný výstup, jak vidíte na následujícím obrázku.

Příklad 03: Extrakce dat seznamu pomocí selenu

V této části vám ukážu příklad dat seznamu sešrotování webu z webu pomocí ovladače Selenium Firefox Gecko v bezhlavém režimu.

Nejprve navštivte generátor náhodných jmen.informace z webového prohlížeče Firefox. Tento web vygeneruje 10 náhodných jmen při každém opětovném načtení stránky, jak vidíte na následujícím obrázku. Naším cílem je extrahovat tato náhodná jména pomocí selenu v bezhlavém režimu.

Chcete-li zjistit strukturu HTML seznamu, musíte otevřít Nástroj pro vývojáře Firefoxu. Chcete-li to provést, stiskněte pravé tlačítko myši (RMB) na stránce a klikněte na Zkontrolovat prvek (Q).

Nástroj pro vývojáře Firefoxu by měl být otevřen. Klikněte na Zkontrolovat ikonu () jak je uvedeno na snímku obrazovky níže.

Poté umístěte kurzor na seznam Náhodná jména. Seznam by měl být zvýrazněn tak, jak je označen na snímku obrazovky níže. Poté stisknutím levého tlačítka myši (LMB) vyberte seznam.

HTML kód seznamu by měl být zvýrazněn v Inspektor záložka Nástroj pro vývojáře Firefoxu. Zde je seznam náhodných jmen uvnitř a div živel. The div prvek má třída název Výsledek. Uvnitř toho máme ol prvek s třída název jmenný seznam. Uvnitř ol prvek, každé ze jmen je v a li živel.

Z toho můžeme říci, že se dostat do li tagy, musíme následovat div.výsledky> ol.nameList> li

Náš selektor CSS tedy bude div.výsledky ol.nameList li (stačí vyměnit > značky s mezerami)

Pro extrakci těchto náhodných jmen vytvořte nový skript v Pythonu ex03.py a zadejte do něj následující řádky kódů.

z webového ovladače pro import selenu
ze selenu.webdriver.Firefox.možnosti importu
ze selenu.webdriver.běžný.klíče importovat klíče
firefoxOptions = Možnosti ()
firefoxMožnosti.add_argument ("- bez hlavy")
prohlížeč = webdriver.Firefox (executable_path = "./ drivers / geckodriver ", options = firefoxOptions)
prohlížeč.get ("http: // generátor náhodných jmen.informace / ")
nameList = prohlížeč.find_elements_by_css_selector ('div.výsledky ol.nameList li ')
pro jméno v nameList:
tisk (jméno.text)
prohlížeč.přestat()

Až budete hotovi, uložte ex03.py Skript v Pythonu.

Řádek 10 načte web generátoru náhodných jmen pomocí prohlížeč.dostat() metoda.

Řádek 11 vybírá seznam jmen pomocí prohlížeč.find_elements_by_css_selector () metoda. Tato metoda používá selektor CSS div.výsledky ol.nameList li vyhledejte seznam jmen. Poté se seznam jmen uloží do složky jmenný seznam proměnná.

V řádcích 13 a 14, a pro smyčka se používá k iteraci přes jmenný seznam seznam li elementy. V každé iteraci obsah li prvek je vytištěn na konzole.

Nyní spusťte skript Pythonu ex03.py jak následuje:

$ python3 ex03.py

Jak vidíte, skript v Pythonu ex03.py načíst všechna náhodná jména z webové stránky.

Pokud spustíte skript podruhé, měl by vrátit nový seznam náhodných jmen, jak vidíte na obrázku níže.

Závěr:

Tento článek by vám měl pomoci začít se selenem používat webový prohlížeč Firefox. Měli byste být schopni nastavit projekt ovladače Selenium Firefox Gecko docela snadno a spustit testy prohlížeče, automatizaci webu a škrábání webu.

Jak změnit levé a pravé tlačítko myši na počítači se systémem Windows 10
Je úplnou normou, že všechna zařízení počítačových myší jsou ergonomicky navržena pro praváky. K dispozici jsou však myší zařízení, která jsou speciál...
Emulace kliknutí myší vznášením pomocí myši Clickless Mouse ve Windows 10
Používání myši nebo klávesnice ve špatném držení těla nadměrného používání může mít za následek mnoho zdravotních problémů, včetně napětí, syndromu ka...
Přidejte gesta myši do Windows 10 pomocí těchto bezplatných nástrojů
V posledních letech se počítače a operační systémy značně vyvinuly. Bývaly doby, kdy uživatelé museli procházet správci souborů pomocí příkazů. Stejně...