Selenium

Korištenje selena s Firefox upravljačkim programom

Korištenje selena s Firefox upravljačkim programom
Selen je izvrstan alat za testiranje preglednika, automatizaciju weba i struganje weba. Selen može kontrolirati većinu modernih web preglednika. ja.e., Firefox, Chrome, Chromium, Opera, Apple Safari. Za upravljanje preglednikom, Selenium treba alat nazvan Web driver. Većina modernih dobavljača preglednika za svoje web preglednike nudi softver web pokretača.

Da biste upravljali Mozilla Firefox web preglednikom iz Selenium, morate upotrijebiti Gecko Web Driver.

U ovom članku pokazat ću vam kako postaviti Selenium za pokretanje testova preglednika, automatizaciju weba i zadatke struganja weba pomoću web preglednika Mozilla Firefox. Pa, krenimo.

Preduvjeti:

Da biste isprobali naredbe i primjere ovog članka, morate ih imati,

1) Linux distribucija (po mogućnosti Ubuntu) instalirana na vašem računalu.
2) Python 3 instaliran na vašem računalu.
3) PIP 3 instaliran na vašem računalu.
4) Mozilla Firefox instaliran na vašem računalu.

Mnogo članaka o tim temama možete pronaći na LinuxHintu.com. Svakako ih pregledajte ako trebate pomoć.

Priprema virtualnog okruženja Python 3 za projekt:

Virtualno okruženje Python koristi se za stvaranje izoliranog direktorija projekta Python. Python moduli koje instalirate pomoću PIP-a bit će instalirani samo u direktorij projekta, a ne globalno.

Piton virtualenv modul koristi se za upravljanje Python virtualnim okruženjima.

Možete instalirati Python virtualenv modul globalno koristeći PIP 3 kako slijedi:

$ sudo pip3 instaliraj virtualenv

Piton virtualenv treba instalirati.

Stvorite direktorij projekta selen-firefox / u vašem trenutnom radnom direktoriju na sljedeći način:

$ mkdir -pv selenium-firefox / upravljački programi

Idite do vašeg novostvorenog direktorija projekta selen-firefox / kako slijedi:

$ cd selen-firefox /

Stvorite Python virtualno okruženje u direktoriju svog projekta sljedećom naredbom:

$ virtualenv .venv

Python virtualno okruženje treba stvoriti u direktoriju vašeg projekta.

Aktivirajte virtualno okruženje Python iz direktorija vašeg projekta sljedećom naredbom:

$ izvor .env / bin / activate

Instaliranje biblioteke Selenium Python:

Biblioteka selena dostupna je u službenom spremištu Python PyPI.

Biblioteku Selenium Python možete instalirati pomoću PIP 3 na sljedeći način:

$ pip3 instaliraj selen

Treba instalirati biblioteku Selenium Python.

Instaliranje upravljačkog programa Firefox Gecko:

Da biste preuzeli Firefox Gecko Driver, posjetite GitHub stranicu izdanja mozilla / geckodriver iz vašeg omiljenog web preglednika.

Kao što vidite, v0.26.0 je najnovija verzija Firefox Gecko upravljačkog programa u vrijeme pisanja ovog članka.

Da biste preuzeli Firefox Gecko Driver, pomaknite se malo prema dolje i kliknite Linux geckodriver tar.gz arhiva, ovisno o arhitekturi vašeg operativnog sustava.

Ako koristite 32-bitni operativni sustav, kliknite na geckodriver-v0.26.0-linux32.katran.gz veza.

Ako koristite 64-bitni operativni sustav, kliknite na geckodriver-v0.26.0-linuxx64.katran.gz veza.

Preuzet ću 64-bitnu verziju upravljačkog programa Firefox Gecko.

Vaš preglednik trebao bi zatražiti da spremite arhivu. Odaberi Spremiti datoteku i kliknite na u redu.

Treba preuzeti Firefox Gecko upravljački program.

Arhivu Firefox Gecko Driver treba preuzeti u ~ / Preuzimanja imenik.

Možete izvaditi geckodriver-v0.26.0-linux64.katran.gz arhiva iz ~ / Preuzimanja direktorij u vozači / direktorij vašeg projekta sa sljedećom naredbom:

$ tar -xzf ~ / Preuzimanja / geckodriver-v0.26.0-linux64.katran.gz -C upravljački programi /

Nakon što se izvadi arhiva Firefox Gecko Driver, nova binarna datoteka geckodriver treba stvoriti u vozači / direktorij vašeg projekta, kao što možete vidjeti na donjoj snimci zaslona.

Početak rada sa selenom koristeći Firefox Gecko Driver:

U ovom odjeljku pokazat ću vam kako postaviti svoju prvu Selenium Python skriptu kako biste testirali radi li Firefox Gecko Driver.

Prvo stvorite novu Python skriptu ex00.py u direktorij vašeg projekta i u njega unesite sljedeće retke.

s selena za uvoz webdrivera
od selena.mrežni pogonitelj.uobičajen.tipke uvoz ključeva
preglednik = webdriver.Firefox (izvršna_puta = "./ vozači / geckodriver ")
preglednik.get ('https: // www.linuxhint.com ')
print ('Naslov:% s'% preglednik.titula)
preglednik.prestati()

Kad završite, spremite ex00.py Python skripta.

Redak 1 i 2 uvozi sve potrebne komponente iz programa selen Python knjižnica.

Redak 4 stvara Firefoxov objekt web upravljačkog programa pomoću mrežni pogonitelj.Firefox () metodu i pohranjuje u a preglednik varijabilna. The izvršna_puta Argument se koristi da web upravljačkom programu kaže gdje treba tražiti binarni program Firefox Gecko Driver. U ovom slučaju, geckodriver binarni iz vozači / direktorij projekta.

Na liniji 6, preglednik.dobiti() metoda se učitava linuxhint.com u web pregledniku Firefox.

Kada web mjesto završi s učitavanjem, redak 7 ispisuje naslov web mjesta ovdje, preglednik.titula svojstvo se koristi za pristup naslovu web mjesta.

Redak 8 zatvara web preglednik Firefox pomoću preglednik.prestati() metoda.

Možete pokrenuti Python skriptu ex00.py sa sljedećom naredbom:

$ python3 ex00.py

Selenium bi trebao otvoriti web preglednik Firefox i posjetiti linuxhint.com web mjesto automatski.

Nakon što se stranica učita, trebala bi ispisati naslov web stranice na konzoli, a web preglednik trebao bi se automatski zatvoriti.

Dakle, Selenium ispravno radi s upravljačkim programom Firefox Gecko.

Primjer 01: Pokretanje Firefoxa u načinu bez glave pomoću selena

Također možete pokrenuti Selenium s Firefox Gecko Driver-om u načinu bez glave. Način rada bez glave Selenium Firefox ne zahtijeva grafičko korisničko sučelje instalirano na vašem računalu. Dakle, moći ćete pokrenuti Selenium Firefox na bilo kojem Linux poslužitelju bez glave.

Prvo stvorite novu Python skriptu ex01.py u direktorij vašeg projekta i u njega unesite sljedeće retke kodova.

s selena za uvoz webdrivera
od selena.mrežni pogonitelj.krijesnica.mogućnosti uvoza Opcije
od selena.mrežni pogonitelj.uobičajen.tipke uvoz ključeva
firefoxOptions = Opcije ()
firefoxOptions.add_argument ("- bez glave")
preglednik = webdriver.Firefox (izvršna_puta = "./ drivers / geckodriver ", options = firefoxOptions)
preglednik.get ('https: // www.linuxhint.com ')
print ('Naslov:% s'% preglednik.titula)
preglednik.prestati()

Kad završite, spremite ex01.py Python skripta.

Linija 1 i linija 3 jednake su liniji 1 i liniji 2 od ex00.py Python skripta.

Linija 2 uvozi Firefox Opcije od selen knjižnica.

Redak 5 stvara objekt Firefox Options i pohranjuje ga u firefoxOptions varijabilna.

Linija 6 koristi firefoxOptions.dodaj_argument () metoda za dodavanje -bezglav Firefox zastava naredbenog retka na firefoxOptions objekt.

Na liniji 8, mogućnosti argument se koristi za prosljeđivanje firefoxOptions tijekom inicijalizacije Firefoxovog web upravljačkog programa pomoću mrežni pogonitelj.Firefox () metoda.

Ostatak redaka ex01.py skripta je ista kao i ex00.py.

Možete pokrenuti Python skriptu ex01.py sa sljedećom naredbom:

$ python3 ex01.py

Kao što vidite, naslov web stranice (linuxhint.com) ispisuje se na konzoli bez otvaranja bilo kakve grafičke verzije web preglednika Firefox.

Kao što vidite, Selenium također radi na Ubuntu bezglavom okruženju u kojem nisam instalirao grafičko korisničko sučelje.

Sada kada znate kako proći -bezglav Firefox zastava / opcija naredbenog retka pomoću upravljačkog programa Selenium Firefox Gecko, možete proslijediti i sve druge zastavice / opcije Firefox naredbenog retka.

Sve podržane zastavice / opcije naredbenog retka Firefoxa možete pronaći u opcijama naredbenog retka - Mozilla | MDN stranica.

Primjer 02: Ekstrakcija Lorem Ipsuma korištenjem selena

U ovom odjeljku pokazat ću vam kako napraviti osnovno uklanjanje weba pomoću upravljačkog programa Selenium Firefox Gecko.

Prvo posjetite stranicu Lorem Ipsum Generator iz web preglednika Firefox. Kao što vidite, stranica je generirala 5 slučajnih odlomaka. Izdvojimo sav generirani tekst (svih 5 odlomaka) s ove stranice.

Prije nego što započnete s izvlačenjem podataka s web stranice, morate znati HTML strukturu sadržaja web stranice.

Možete lako pronaći HTML strukturu sadržaja koji želite izdvojiti pomoću Alat za razvojne programere Firefoxa. Otvoriti Alat za razvojne programere Firefoxa, pritisnite desnu tipku miša (RMB) na stranici i kliknite na Pregledaj element (Q).

Alat za razvojne programere Firefoxa treba otvoriti. Klikni na Ikona pregleda () kako je označeno na snimci zaslona u nastavku.

Zadržite pokazivač iznad prvog odlomka, kao što je prikazano na snimci zaslona u nastavku. Zatim pritisnite lijevu tipku miša (LMB) da biste je odabrali.

HTML struktura odlomaka trebala bi biti prikazana u Pregledati na kartici Alat za razvojne programere Firefoxa. Kao što vidite, generirani odlomci lorem ipsum nalaze se unutar a div oznaka koja ima iskaznica lipum.

Da biste izdvojili odlomke lorem ipsum pomoću pokretačkog programa Selenium Firefox Gecko, stvorite novu Python skriptu ex02.py u direktorij vašeg projekta i u njega unesite sljedeće retke kodova.

s selena za uvoz webdrivera
od selena.mrežni pogonitelj.krijesnica.mogućnosti uvoza Opcije
od selena.mrežni pogonitelj.uobičajen.tipke uvoz ključeva
firefoxOptions = Opcije ()
firefoxOptions.add_argument ("- bez glave")
preglednik = webdriver.Firefox (izvršna_puta = "./ drivers / geckodriver ", options = firefoxOptions)
preglednik.get ('https: // www.lipum.com / feed / html ')
lipum = preglednik.find_element_by_id ('lipsum')
otisak (lipsum.tekst)
preglednik.prestati()

Kad završite, spremite ex02.py Python skripta.

Redak 10 učitava stranicu generatora lorem ipsum pomoću preglednik.dobiti() metoda.

Sadržaj lorem ipsuma nalazi se unutar div oznaka s id-om lipum. Linija 12 koristi preglednik.find_element_by_id () način da ga odaberete s web stranice i spremite u lipum varijabilna.

Redak 13 ispisuje generirani sadržaj lorem ipsuma na konzoli. Evo, tekst svojstvo se koristi za pristup sadržaju div element s id-om lipum.

Sada pokrenite Python skriptu ex02.py kako slijedi:

$ python3 ex02.py

Kao što vidite, Selenium je pravilno izvadio sadržaj lorem ipsuma s web stranice.

Pokretanje Python skripte ex02.py opet će vam dati drugačiji izlaz, kao što možete vidjeti na snimci zaslona u nastavku.

Primjer 03: Izdvajanje podataka s popisa pomoću selena

U ovom odjeljku pokazat ću vam primjer podataka za brisanje popisa web stranica s web mjesta pomoću upravljačkog programa Selenium Firefox Gecko u načinu bez glave.

Prvo posjetite generator slučajnih imena.informacije iz web preglednika Firefox. Ova će web stranica generirati 10 nasumičnih imena svaki put kada ponovo učitate stranicu, kao što možete vidjeti na snimci zaslona u nastavku. Cilj nam je izdvojiti ta slučajna imena pomoću selena u načinu bez glave.

Da biste saznali HTML strukturu popisa, morate otvoriti Alat za razvojne programere Firefoxa. Da biste to učinili, pritisnite desnu tipku miša (RMB) na stranici i kliknite na Pregledaj element (Q).

Alat za razvojne programere Firefoxa treba otvoriti. Klikni na Ikona pregleda () kako je označeno na snimci zaslona u nastavku.

Zatim zadržite pokazivač iznad popisa Nasumična imena. Popis treba istaknuti kako je označeno na donjoj snimci zaslona. Zatim pritisnite lijevu tipku miša (LMB) za odabir popisa.

HTML kôd popisa trebao bi biti istaknut u Inspektor na kartici Alat za razvojne programere Firefoxa. Ovdje je popis nasumičnih imena unutar a div element. The div element ima razred Ime rezultatima. Unutar nje imamo ol element s razred Ime lista imena. Unutar ol element, svako ime je u a li element.

Iz ovoga možemo reći da se dolazi do li oznake, moramo slijediti div.rezultati> ol.nameList> li

Dakle, naš će CSS selektor biti div.rezultati ol.popis popisa li (samo zamijenite > znakovi s razmakom)

Za izdvajanje ovih slučajnih imena stvorite novu Python skriptu ex03.py i u njega unesite sljedeće retke kodova.

s selena za uvoz webdrivera
od selena.mrežni pogonitelj.krijesnica.mogućnosti uvoza Opcije
od selena.mrežni pogonitelj.uobičajen.tipke uvoz ključeva
firefoxOptions = Opcije ()
firefoxOptions.add_argument ("- bez glave")
preglednik = webdriver.Firefox (izvršna_puta = "./ drivers / geckodriver ", options = firefoxOptions)
preglednik.get ("http: // random-name-generator.info / ")
nameList = preglednik.find_elements_by_css_selector ('div.rezultati ol.Popis imena li ')
za ime u popisu imena:
Naziv ispisa.tekst)
preglednik.prestati()

Kad završite, spremite ex03.py Python skripta.

Redak 10 učitava web mjesto generatora slučajnih naziva pomoću preglednik.dobiti() metoda.

Redak 11 odabire popis imena pomoću preglednik.find_elements_by_css_selector () metoda. Ova metoda koristi CSS selektor div.rezultati ol.popis popisa li pronaći popis imena. Zatim se popis imena sprema u lista imena varijabilna.

U redovima 13 i 14, a za petlja se koristi za iteraciju kroz lista imena popis li elementi. U svakoj iteraciji sadržaj li element otisnut je na konzoli.

Sada pokrenite Python skriptu ex03.py kako slijedi:

$ python3 ex03.py

Kao što vidite, Python skripta ex03.py dohvatio sva slučajna imena s web stranice.

Ako skriptu pokrenete drugi put, trebala bi vratiti novi popis slučajnih imena, kao što možete vidjeti na donjoj snimci zaslona.

Zaključak:

Ovaj bi vam članak trebao pomoći da započnete s upotrebom selena pomoću web preglednika Firefox. Trebali biste biti u mogućnosti postaviti projekt upravljačkog programa Selenium Firefox Gecko i pokretati testove preglednika, automatizaciju weba i zadatke struganja weba.

Vodič za Shadow of the Tomb Raider za Linux
Shadow of the Tomb Raider dvanaesti je dodatak seriji Tomb Raider - franšizi u akcijsko-avanturističkoj igri koju je stvorio Eidos Montreal. I kritiča...
Kako pojačati FPS u Linuxu?
FPS je kratica Okviri u sekundi. Zadatak FPS-a je mjerenje broja sličica u reprodukcijama video zapisa ili igranim izvedbama. Jednostavnim riječima, b...
Najpopularnije laboratorijske igre Oculus App
Ako ste vlasnik slušalica Oculus, tada morate biti sigurni u bočno učitavanje. Bočno učitavanje postupak je instaliranja nehranjenog sadržaja na vaše ...