Selen

Uporaba selena z gonilnikom Firefox

Uporaba selena z gonilnikom Firefox
Selen je odlično orodje za testiranje brskalnikov, avtomatizacijo spletnih strani in strganje spletnih strani. Selen lahko nadzoruje večino sodobnih spletnih brskalnikov. jaz.e., Firefox, Chrome, Chromium, Opera, Apple Safari. Za nadzor brskalnika Selenium potrebuje orodje, imenovano spletni gonilnik. Večina sodobnih ponudnikov brskalnikov ponuja programsko opremo za spletni gonilnik za svoje spletne brskalnike.

Za nadzor spletnega brskalnika Mozilla Firefox iz programa Selenium morate uporabiti spletni gonilnik Gecko.

V tem članku vam bom pokazal, kako nastaviti Selenium za izvajanje preizkusov brskalnika, avtomatizacijo spleta in opravila za strganje spletnih strani s pomočjo spletnega brskalnika Mozilla Firefox. Torej, začnimo.

Pogoji:

Če želite preizkusiti ukaze in primere tega članka, jih morate imeti,

1) V računalniku nameščena distribucija Linuxa (po možnosti Ubuntu).
2) Python 3, nameščen v vašem računalniku.
3) PIP 3, nameščen v vašem računalniku.
4) Mozilla Firefox nameščen v vašem računalniku.

V LinuxHintu lahko najdete veliko člankov o teh temah.com. Ne pozabite jih preveriti, če potrebujete pomoč.

Priprava virtualnega okolja Python 3 za projekt:

Navidezno okolje Python se uporablja za ustvarjanje izoliranega direktorija Python projekta. Moduli Python, ki jih namestite s pomočjo PIP, bodo nameščeni samo v imeniku projekta, ne pa tudi globalno.

Python virtualenv modul se uporablja za upravljanje navideznih okolij Python.

Lahko namestite Python virtualenv modul globalno z uporabo PIP 3, kot sledi:

$ sudo pip3 namesti virtualenv

Python virtualenv namestiti.

Ustvarite imenik projekta selen-firefox / v trenutnem delovnem imeniku, kot sledi:

$ mkdir -pv selenium-firefox / gonilniki

Pomaknite se na novo ustvarjeni imenik projekta selen-firefox / kot sledi:

$ cd selen-firefox /

Ustvarite navidezno okolje Python v imeniku projekta z naslednjim ukazom:

$ virtualenv .venv

Navidezno okolje Python je treba ustvariti v imeniku vašega projekta.

Aktivirajte navidezno okolje Python iz imenika projekta z naslednjim ukazom:

$ vir .env / bin / activate

Namestitev knjižnice Selenium Python:

Knjižnica selena je na voljo v uradnem repozitoriju Python PyPI.

Knjižnico Selenium Python lahko namestite s pomočjo PIP 3, kot sledi:

$ pip3 namesti selen

Namestiti je treba knjižnico Selenium Python.

Namestitev gonilnika Firefox Gecko:

Če želite prenesti gonilnik Firefox Gecko, iz svojega najljubšega spletnega brskalnika obiščite stran z izdajami GitHub mozille / geckodriver.

Kot lahko vidite, v0.26.0 je zadnja različica gonilnika Firefox Gecko v času pisanja tega članka.

Če želite prenesti gonilnik Firefox Gecko, se pomaknite navzdol in kliknite tar geckodriver za Linux.gz arhiv, odvisno od arhitekture vašega operacijskega sistema.

Če uporabljate 32-bitni operacijski sistem, kliknite geckodriver-v0.26.0-linux32.katran.gz povezava.

Če uporabljate 64-bitni operacijski sistem, kliknite geckodriver-v0.26.0-linuxx64.katran.gz povezava.

Prenesel bom 64-bitno različico gonilnika Firefox Gecko.

Vaš brskalnik vas bo pozval, da shranite arhiv. Izberite Shranite datoteko in kliknite na v redu.

Prenesite gonilnik za Firefox Gecko.

Arhiv gonilnikov za Firefox Gecko je treba prenesti v ~ / Prenosi imenik.

Lahko izvlečete geckodriver-v0.26.0-linux64.katran.gz arhiv iz ~ / Prenosi v imenik vozniki / imenik vašega projekta z naslednjim ukazom:

$ tar -xzf ~ / Downloads / geckodriver-v0.26.0-linux64.katran.gz -C gonilniki /

Ko je arhiv Firefox Gecko Driver izvlečen, nova binarna datoteka geckodriver je treba ustvariti v vozniki / imenik vašega projekta, kot lahko vidite na spodnjem posnetku zaslona.

Začetek uporabe selena z uporabo gonilnika Firefox Gecko:

V tem poglavju vam bom pokazal, kako nastaviti svoj prvi skript Selenium Python, da preizkusite, ali gonilnik Firefox Gecko deluje.

Najprej ustvarite nov skript Python ex00.py v imenik projekta in vanj vnesite naslednje vrstice.

iz spletnega pogona za uvoz selena
iz selena.spletni pogon.običajni.tipke za uvoz ključev
brskalnik = spletni voznik.Firefox (izvršljiva_pot = "./ drivers / geckodriver ")
brskalnik.get ('https: // www.linuxhint.com ')
print ('Naslov:% s'% brskalnik.naslov)
brskalnik.prenehati()

Ko končate, prihranite ex00.py Python skript.

Vrstici 1 in 2 uvozita vse zahtevane komponente iz selen Knjižnica Python.

Vrstica 4 ustvari objekt spletnega gonilnika Firefox s pomočjo spletni pogon.Firefox () metoda in jo shrani v a brskalnik spremenljivka. The izvršljiva_pot Argument se uporablja, da spletnemu gonilniku pove, kje naj išče binarni program Firefox Gecko Driver. V tem primeru je geckodriver binarni iz vozniki / imenik projekta.

V vrstici 6, brskalnik.dobili () metoda se naloži linuxhint.com v spletnem brskalniku Firefox.

Ko se spletno mesto konča z nalaganjem, vrstica 7 natisne naslov spletnega mesta tukaj, brskalnik.naslov lastnost se uporablja za dostop do naslova spletnega mesta.

Vrstica 8 zapre spletni brskalnik Firefox s pomočjo brskalnik.prenehati() metoda.

Zaženete lahko skript Python ex00.py z naslednjim ukazom:

$ python3 ex00.py

Selenium mora odpreti spletni brskalnik Firefox in obiskati linuxhint.com samodejno.

Ko se stran naloži, naj na konzoli natisne naslov spletnega mesta, spletni brskalnik pa se mora samodejno zapreti.

Torej, Selenium pravilno deluje z gonilnikom za Firefox Gecko.

Primer 01: Zagon Firefoxa v načinu brez glave s pomočjo selena

Selen lahko zaženete tudi z gonilnikom Firefox Gecko v brezglavem načinu. Brezglavi način Selenium Firefox ne zahteva nobenega grafičnega uporabniškega vmesnika, nameščenega v vašem računalniku. Torej, Selenium Firefox boste lahko zagnali v vseh strežnikih brez glave Linux.

Najprej ustvarite nov skript Python ex01.py v imenik projekta in vanj vnesite naslednje vrstice kod.

iz spletnega pogona za uvoz selena
iz selena.spletni pogon.firefox.možnosti uvoza Možnosti
iz selena.spletni pogon.običajni.tipke za uvoz ključev
firefoxOptions = Možnosti ()
firefoxOptions.add_argument ("- brez glave")
brskalnik = spletni voznik.Firefox (izvršljiva_pot = "./ drivers / geckodriver ", options = firefoxOptions)
brskalnik.get ('https: // www.linuxhint.com ')
print ('Naslov:% s'% brskalnik.naslov)
brskalnik.prenehati()

Ko končate, shranite ex01.py Python skript.

Vrstica 1 in vrstica 3 sta enaki vrstici 1 in vrstici 2 ex00.py Python skript.

Vrstica 2 uvaža Firefox Opcije Iz selen knjižnica.

Vrstica 5 ustvari objekt Firefox Options in ga shrani v firefoxOptions spremenljivka.

Vrstica 6 uporablja firefoxOptions.add_argument () metoda za dodajanje -brezglave Oznaka ukazne vrstice Firefox za firefoxOptions predmet.

V vrstici 8, opcije argument se uporablja za posredovanje firefoxOptions med inicializacijo spletnega gonilnika Firefox s pomočjo spletni pogon.Firefox () metoda.

Preostale vrstice ex01.py skript je enak kot ex00.py.

Zaženete lahko skript Python ex01.py z naslednjim ukazom:

$ python3 ex01.py

Kot lahko vidite, je naslov spletnega mesta (linuxhint.com) se natisne na konzoli, ne da bi se odprla grafična različica spletnega brskalnika Firefox.

Kot lahko vidite, Selenium dela tudi v okolju brez glave Ubuntu, kjer nimam nameščenega grafičnega uporabniškega vmesnika.

Zdaj, ko veste, kako prenesti -brezglave Zastavica / možnost ukazne vrstice Firefox z gonilnikom Selenium Firefox Gecko, lahko prenesete tudi katero koli drugo zastavico / možnosti ukazne vrstice Firefox.

Vse podprte zastavice / možnosti ukazne vrstice Firefox najdete v možnostih ukazne vrstice - Mozilla | Stran MDN.

Primer 02: Pridobivanje Lorem Ipsum z uporabo selena

V tem poglavju vam bom pokazal, kako narediti osnovno odstranjevanje spleta z gonilnikom Selenium Firefox Gecko.

Najprej obiščite stran Lorem Ipsum Generator iz spletnega brskalnika Firefox. Kot lahko vidite, je stran ustvarila 5 naključnih odstavkov. Izvlecimo vse ustvarjeno besedilo (vseh 5 odstavkov) s te strani.

Preden začnete pridobivati ​​informacije s spletne strani, morate poznati strukturo HTML vsebine spletne strani.

Z lahkoto lahko poiščete strukturo HTML vsebine, ki jo želite izvleči s pomočjo Orodje za razvijalce Firefox. Odpreti Orodje za razvijalce Firefox, pritisnite desni gumb miške (RMB) na strani in kliknite na Preglejte element (Q).

Orodje za razvijalce Firefox je treba odpreti. Kliknite na Ikona za pregled () kot je označeno na spodnjem posnetku zaslona.

Premaknite miškin kazalec nad prvi odstavek, kot je prikazano na spodnjem posnetku zaslona. Nato pritisnite levi gumb miške (LMB), da ga izberete.

Struktura HTML odstavkov mora biti prikazana v Preglejte zavihka Orodje za razvijalce Firefox. Kot lahko vidite, so ustvarjeni odstavki lorem ipsum znotraj a div oznaka, ki ima id lipum.

Če želite izvleči odstavke lorem ipsum z gonilnikom Selenium Firefox Gecko, ustvarite nov skript Python ex02.py v imenik projekta in vanj vnesite naslednje vrstice kod.

iz spletnega pogona za uvoz selena
iz selena.spletni pogon.firefox.možnosti uvoza Možnosti
iz selena.spletni pogon.običajni.tipke za uvoz ključev
firefoxOptions = Možnosti ()
firefoxOptions.add_argument ("- brez glave")
brskalnik = spletni voznik.Firefox (izvršljiva_pot = "./ drivers / geckodriver ", options = firefoxOptions)
brskalnik.get ('https: // www.lipum.com / feed / html ')
lipum = brskalnik.find_element_by_id ('lipsum')
tisk (lipsum.besedilo)
brskalnik.prenehati()

Ko končate, shranite ex02.py Python skript.

Vrstica 10 naloži stran generatorja lorem ipsum s pomočjo brskalnik.dobili () metoda.

Vsebina lorem ipsum je znotraj div oznako z id lipum. Vrstica 12 uporablja brskalnik.find_element_by_id () način, da ga izberete s spletne strani in shranite v lipum spremenljivka.

Vrstica 13 na konzolo natisne ustvarjeno vsebino lorem ipsum. Tukaj besedilo lastnost se uporablja za dostop do vsebine div element z id lipum.

Zdaj zaženite skript Python ex02.py kot sledi:

$ python3 ex02.py

Kot lahko vidite, je Selen pravilno izvlekel vsebino lorem ipsum s spletne strani.

Zagon skripta Python ex02.py spet vam bo dal drugačen izhod, kot lahko vidite na spodnjem posnetku zaslona.

Primer 03: Izvleček podatkov s seznama s pomočjo selena

V tem razdelku vam bom prikazal primer podatkov za odstranjevanje spletnih strani s spletnega mesta z gonilnikom Selenium Firefox Gecko v brezglavem načinu.

Najprej obiščite generator naključnih imen.informacije iz spletnega brskalnika Firefox. To spletno mesto bo ustvarilo 10 naključnih imen vsakič, ko znova naložite stran, kot lahko vidite na spodnjem posnetku zaslona. Naš cilj je pridobiti ta naključna imena s pomočjo selena v brezglavem načinu.

Če želite izvedeti strukturo HTML seznama, morate odpreti Orodje za razvijalce Firefox. Za to pritisnite desni gumb miške (RMB) na strani in kliknite na Preglejte element (Q).

Orodje za razvijalce Firefox je treba odpreti. Kliknite na Ikona za pregled () kot je označeno na spodnjem posnetku zaslona.

Nato premaknite miškin kazalec na seznam Naključna imena. Seznam mora biti označen, kot je označeno na spodnjem posnetku zaslona. Nato pritisnite levi gumb miške (LMB), da izberete seznam.

Koda HTML seznama mora biti označena v Inšpektor zavihka Orodje za razvijalce Firefox. Tu je seznam naključnih imen znotraj a div element. The div element ima razred ime rezultatov. V njej imamo ol element z razred ime nameList. Znotraj ol element, je vsako ime v a li element.

Iz tega lahko rečemo, da pridemo do li oznake, moramo slediti div.rezultati> ol.nameList> li

Torej, naš izbirnik CSS bo div.rezultati ol.seznam imen li (samo zamenjajte > znaki s presledkom)

Za ekstrahiranje teh naključnih imen ustvarite nov skript Python ex03.py in vanj vnesite naslednje vrstice kod.

iz spletnega pogona za uvoz selena
iz selena.spletni pogon.firefox.možnosti uvoza Možnosti
iz selena.spletni pogon.običajni.tipke za uvoz ključev
firefoxOptions = Možnosti ()
firefoxOptions.add_argument ("- brez glave")
brskalnik = spletni voznik.Firefox (izvršljiva_pot = "./ drivers / geckodriver ", options = firefoxOptions)
brskalnik.get ("http: // generator naključnih imen.info / ")
nameList = brskalnik.find_elements_by_css_selector ('div.rezultati ol.nameList li ')
za ime v imeList:
natisni (ime.besedilo)
brskalnik.prenehati()

Ko končate, shranite ex03.py Python skript.

Vrstica 10 naloži spletno mesto generatorja naključnih imen z uporabo brskalnik.dobili () metoda.

Vrstica 11 izbere seznam imen s pomočjo brskalnik.find_elements_by_css_selector () metoda. Ta metoda uporablja izbirnik CSS div.rezultati ol.seznam imen li da poiščete seznam imen. Nato je seznam imen shranjen v nameList spremenljivka.

V vrsticah 13 in 14 je a za zanka se uporablja za iteracijo skozi nameList seznam li elementi. V vsaki ponovitvi je vsebina li element je natisnjen na konzoli.

Zdaj zaženite skript Python ex03.py kot sledi:

$ python3 ex03.py

Kot lahko vidite, skript Python ex03.py naložila vsa naključna imena s spletne strani.

Če skript zaženete drugič, mora vrniti nov seznam naključnih imen, kot lahko vidite na spodnjem posnetku zaslona.

Zaključek:

Ta članek vam bo pomagal začeti uporabljati Selenium z uporabo spletnega brskalnika Firefox. Projekt gonilnika Selenium Firefox Gecko bi morali biti precej enostavni in izvajati teste brskalnika, avtomatizacijo spleta in naloge za strganje spleta.

Kako prenesti in igrati Sid Meier's Civilization VI v Linuxu
Uvod v igro Civilization 6 je sodoben pogled na klasični koncept, uveden v seriji iger Age of Empires. Ideja je bila dokaj preprosta; začeli bi v zelo...
Kako namestiti in igrati Doom v Linuxu
Uvod v Doom Serija Doom je nastala v devetdesetih letih po izidu prvotnega Dooma. Bil je takojšen hit in od takrat naprej je serija iger prejela števi...
Vulkan za uporabnike Linuxa
Z vsako novo generacijo grafičnih kart vidimo, da razvijalci iger premikajo meje grafične zvestobe in se približujejo fotorealizmu. A kljub vsem kredi...