Selenium

„Selenium“ naudojimas su „Firefox“ tvarkykle

„Selenium“ naudojimas su „Firefox“ tvarkykle
Selenas yra puikus įrankis naršyklės testavimui, žiniatinklio automatizavimui ir žiniatinklio grandymui. Selenas gali valdyti daugumą šiuolaikinių interneto naršyklių. i.e., „Firefox“, „Chrome“, „Chromium“, „Opera“, „Apple Safari“. Norint valdyti naršyklę, „Selenium“ reikia įrankio, vadinamo žiniatinklio tvarkykle. Dauguma šiuolaikinių naršyklių pardavėjų teikia žiniatinklio tvarkyklių programinę įrangą savo interneto naršyklėms.

Norėdami valdyti „Mozilla Firefox“ interneto naršyklę iš „Selenium“, turite naudoti „Gecko“ žiniatinklio tvarkyklę.

Šiame straipsnyje aš jums parodysiu, kaip nustatyti „Selenium“ naršyklės testams, žiniatinklio automatizavimui, žiniatinklio grandymo užduotims vykdyti naudojant „Mozilla Firefox“ žiniatinklio naršyklę. Taigi, pradėkime.

Būtinos sąlygos:

Norėdami išbandyti šio straipsnio komandas ir pavyzdžius, turite,

1) „Linux“ paskirstymas (pageidautina „Ubuntu“), įdiegtas jūsų kompiuteryje.
2) „Python 3“ įdiegtas jūsų kompiuteryje.
3) PIP 3 įdiegtas jūsų kompiuteryje.
4) „Mozilla Firefox“ įdiegta jūsų kompiuteryje.

„LinuxHint“ galite rasti daug straipsnių šiomis temomis.com. Jei jums reikia pagalbos, būtinai patikrinkite juos.

„Python 3“ virtualios aplinkos paruošimas projektui:

„Python“ virtuali aplinka naudojama kuriant izoliuotą „Python“ projekto katalogą. „Python“ moduliai, kuriuos įdiegsite naudodami PIP, bus įdiegti tik projekto kataloge, o ne visame pasaulyje.

„Python“ virtualenv modulis naudojamas valdyti „Python“ virtualioms aplinkoms.

Galite įdiegti „Python“ virtualenv modulis visame pasaulyje naudojant PIP 3 taip:

$ sudo pip3 įdiekite virtualenv

„Python“ virtualenv turėtų būti įdiegta.

Sukurkite projekto katalogą selenas-firefox / dabartiniame darbo kataloge taip:

$ mkdir -pv selenium-firefox / tvarkyklės

Eikite į naujai sukurtą projekto katalogą selenas-firefox / taip:

$ cd selenas-„Firefox“ /

Sukurkite „Python“ virtualią aplinką savo projekto kataloge naudodami šią komandą:

$ virtualenv .venv

„Python“ virtuali aplinka turėtų būti sukurta jūsų projekto kataloge.

Suaktyvinkite „Python“ virtualią aplinką iš savo projekto katalogo naudodami šią komandą:

$ šaltinis .env / bin / aktyvuoti

„Selenium Python“ bibliotekos diegimas:

Seleno biblioteka yra oficialioje „Python PyPI“ saugykloje.

„Selenium Python“ biblioteką galite įdiegti naudodami PIP 3 taip:

$ pip3 įdiekite seleną

Reikėtų įdiegti „Selenium Python“ biblioteką.

„Firefox Gecko“ tvarkyklės diegimas:

Norėdami atsisiųsti „Firefox Gecko“ tvarkyklę, apsilankykite „Mozilla / geckodriver“ „GitHub“ leidimų puslapyje iš savo mėgstamos interneto naršyklės.

Kaip matote, v0.26.0 yra naujausia „Firefox Gecko Driver“ versija šio rašymo metu.

Norėdami atsisiųsti „Firefox Gecko“ tvarkyklę, šiek tiek slinkite žemyn ir spustelėkite „Linux geckodriver tar“.gz archyvas, priklausomai nuo operacinės sistemos architektūros.

Jei naudojate 32 bitų operacinę sistemą, spustelėkite geckodriver-v0.26.0-linux32.degutas.gz nuoroda.

Jei naudojate 64 bitų operacinę sistemą, spustelėkite geckodriver-v0.26.0-linuxx64.degutas.gz nuoroda.

Atsisiųsiu „Firefox Gecko“ tvarkyklės 64 bitų versiją.

Jūsų naršyklė turėtų paraginti išsaugoti archyvą. Pasirinkite Išsaugoti failą ir spustelėkite Gerai.

Reikėtų atsisiųsti „Firefox Gecko“ tvarkyklę.

„Firefox Gecko“ tvarkyklių archyvą reikia atsisiųsti iš ~ / Atsisiuntimai kataloge.

Galite išgauti geckodriver-v0.26.0-linux64.degutas.gz archyvas iš ~ / Atsisiuntimai katalogą į vairuotojai / projekto katalogą su šia komanda:

$ tar -xzf ~ / Atsisiuntimai / geckodriver-v0.26.0-linux64.degutas.„gz -C“ tvarkyklės /

Ištraukus „Firefox Gecko Driver“ archyvą, bus sukurtas naujas dvejetainis failas gekodriveris turėtų būti sukurtas vairuotojai / savo projekto katalogą, kaip matote toliau pateiktoje ekrano kopijoje.

Darbo su „Selenium“ pradžia naudojant „Firefox Gecko“ tvarkyklę:

Šiame skyriuje aš jums parodysiu, kaip nustatyti savo pirmąjį „Selenium Python“ scenarijų, kad patikrintumėte, ar veikia „Firefox Gecko“ tvarkyklė.

Pirmiausia sukurkite naują „Python“ scenarijų ex00.py projekto kataloge ir įveskite toliau nurodytas jo eilutes.

iš seleno importo žiniatinklio tvarkyklės
iš seleno.žiniatinklio tvarkyklė.paplitęs.raktai importuoja raktus
naršyklė = žiniatinklio tvarkyklė.„Firefox“ (vykdomojo_path = "./ vairuotojai / geckodriver ")
naršyklė.gauti ('https: // www.linuxhint.com ')
spausdinti ('Pavadinimas:% s'% naršyklė.pavadinimas)
naršyklė.mesti ()

Kai baigsite, išsaugokite ex00.py „Python“ scenarijus.

1 ir 2 eilutėse importuokite visus reikiamus komponentus iš selenas Python biblioteka.

4 eilutėje sukuriamas „Firefox“ žiniatinklio tvarkyklės objektas naudojant žiniatinklio tvarkyklė.„Firefox“ () metodą ir saugo jį a naršyklė kintamasis. The vykdomas_ kelias argumentas naudojamas žiniatinklio tvarkyklei pasakyti, kur ieškoti dvejetainio „Firefox Gecko Driver“. Šiuo atveju gekodriveris dvejetainis iš vairuotojai / projekto katalogas.

6 eilutėje, naršyklė.gauti () metodas pasikrauna linuxhint.com „Firefox“ žiniatinklio naršyklėje.

Kai svetainė bus baigta įkelti, 7 eilutėje atsispausdinsite svetainės pavadinimą, naršyklė.pavadinimas nuosavybė naudojama norint pasiekti svetainės pavadinimą.

8 eilutė uždaro „Firefox“ žiniatinklio naršyklę naudodama naršyklė.mesti () metodas.

Galite paleisti „Python“ scenarijų ex00.py su tokia komanda:

$ python3 ex00.py

Selenas turėtų atidaryti „Firefox“ žiniatinklio naršyklę ir apsilankyti „linuxhint“.„com“ svetainė automatiškai.

Kai puslapis bus įkeltas, jis turėtų atsispausdinti svetainės pavadinimą konsolėje, o interneto naršyklė turėtų automatiškai užsidaryti.

Taigi, „Selenium“ veikia tinkamai su „Firefox Gecko“ tvarkykle.

01 pavyzdys: „Firefox“ paleidimas „Headless“ režimu naudojant „Selenium“

Taip pat galite paleisti „Selenium“ naudodami „Firefox Gecko Driver“ režimą be galvos. „Selenium Firefox“ režimui be galvos nereikia, kad jūsų kompiuteryje būtų įdiegta grafinė vartotojo sąsaja. Taigi, „Selenium Firefox“ galėsite paleisti bet kuriame „Linux“ serveryje be galvos.

Pirmiausia sukurkite naują „Python“ scenarijų ex01.py savo projekto kataloge ir įveskite toliau nurodytas kodų eilutes.

iš seleno importo žiniatinklio tvarkyklės
iš seleno.žiniatinklio tvarkyklė.„Firefox“.importuoti Parinktys
iš seleno.žiniatinklio tvarkyklė.paplitęs.raktai importuoja raktus
firefoxOptions = Parinktys ()
„Firefox“ parinktys.add_argument ("- be galvos")
naršyklė = žiniatinklio tvarkyklė.„Firefox“ (vykdomojo_path = "./ drivers / geckodriver ", options = firefoxOptions)
naršyklė.gauti ('https: // www.linuxhint.com ')
spausdinti ('Pavadinimas:% s'% naršyklė.pavadinimas)
naršyklė.mesti ()

Kai baigsite, išsaugokite ex01.py „Python“ scenarijus.

1 ir 3 eilutės yra tokios pačios kaip 1 ir 2 eilutės ex00.py „Python“ scenarijus.

2 eilutė importuoja „Firefox“ Galimybės nuo selenas biblioteka.

5 eilutėje sukuriamas „Firefox“ parinkčių objektas ir jis saugomas „Firefox“ parinktys kintamasis.

6 eilutėje naudojamas „Firefox“ parinktys.add_argument () metodas pridėti -be galvos "Firefox" komandinės eilutės vėliava „Firefox“ parinktys objektas.

8 eilutėje, galimybės argumentas naudojamas perduoti „Firefox“ parinktys o inicializuodami „Firefox“ žiniatinklio tvarkyklę naudodami žiniatinklio tvarkyklė.„Firefox“ () metodas.

Likusios eilutės ex01.py scenarijus yra tas pats kaip ex00.py.

Galite paleisti „Python“ scenarijų ex01.py su tokia komanda:

$ python3 ex01.py

Kaip matote, svetainės pavadinimas (linuxhint.com) atspausdintas ant konsolės neatidarant jokios grafinės „Firefox“ žiniatinklio naršyklės versijos.

Kaip matote, „Selenium“ taip pat dirba su „Ubuntu“ be galvos aplinka, kurioje neturiu jokios grafinės vartotojo sąsajos.

Dabar, kai žinote, kaip perduoti -be galvos „Firefox“ komandinės eilutės vėliava / parinktis, naudojant „Selenium Firefox Gecko“ tvarkyklę, taip pat galite perduoti kitas „Firefox“ komandinės eilutės vėliavas / parinktis.

Visas palaikomas „Firefox“ komandinės eilutės žymes / parinktis galite rasti komandų eilutės parinktyse - „Mozilla“ MDN puslapis.

02 pavyzdys: Lorem Ipsum ekstrahavimas naudojant seleną

Šiame skyriuje aš jums parodysiu, kaip padaryti pagrindinį žiniatinklio atsisakymą naudojant „Selenium Firefox Gecko“ tvarkyklę.

Pirmiausia apsilankykite „Lorem Ipsum Generator“ puslapyje naudodami „Firefox“ interneto naršyklę. Kaip matote, puslapis sugeneravo 5 atsitiktines pastraipas. Išskleiskime iš šio puslapio visą sugeneruotą tekstą (visas 5 pastraipas).

Prieš pradėdami išgauti informaciją iš tinklalapio, turite žinoti tinklalapio turinio HTML struktūrą.

Naudodami., Lengvai rasite turinio, kurį norite išgauti, HTML struktūrą „Firefox“ kūrėjo įrankis. Atidaryti „Firefox“ kūrėjo įrankis, paspauskite dešinį pelės mygtuką (RMB) puslapyje ir spustelėkite Patikrinkite elementą (Q).

„Firefox“ kūrėjo įrankis turėtų būti atidaryta. Spustelėkite Tikrinti piktogramą () kaip pažymėta toliau pateiktoje ekrano kopijoje.

Užveskite pelės žymeklį virš pirmos pastraipos, kaip parodyta toliau pateiktoje ekrano kopijoje. Tada paspauskite kairįjį pelės mygtuką (LMB), kad jį pasirinktumėte.

Pastraipų HTML struktūra turėtų būti rodoma Apžiūrėkite skirtukas „Firefox“ kūrėjo įrankis. Kaip matote, sugeneruotos lorem ipsum pastraipos yra a viduje div žyma, turinti id lūpos.

Norėdami ištraukti lorem ipsum pastraipas naudodami „Selenium Firefox Gecko Driver“, sukurkite naują „Python“ scenarijų ex02.py savo projekto kataloge ir įveskite toliau nurodytas kodų eilutes.

iš seleno importo žiniatinklio tvarkyklės
iš seleno.žiniatinklio tvarkyklė.„Firefox“.importuoti Parinktys
iš seleno.žiniatinklio tvarkyklė.paplitęs.raktai importuoja raktus
firefoxOptions = Parinktys ()
„Firefox“ parinktys.add_argument ("- be galvos")
naršyklė = žiniatinklio tvarkyklė.„Firefox“ (vykdomojo_path = "./ drivers / geckodriver ", options = firefoxOptions)
naršyklė.gauti ('https: // www.lūpos.com / feed / html ')
lipsum = naršyklė.find_element_by_id ('lūpos')
spauda (lūpos.tekstas)
naršyklė.mesti ()

Kai baigsite, išsaugokite ex02.py „Python“ scenarijus.

10 eilutė įkelia loremo ipsum generatoriaus puslapį naudodama naršyklė.gauti () metodas.

Lorem ipsum turinys yra a viduje div žyma su ID lūpos. 12 eilutėje naudojamas naršyklė.find_element_by_id () būdas pasirinkti jį iš tinklalapio ir išsaugoti lūpos kintamasis.

13 eilutėje ant konsolės atspausdinamas sugeneruoto loremo ipsumo turinys. Čia, teksto nuosavybė naudojama norint pasiekti div elementas su ID lūpos.

Dabar paleiskite „Python“ scenarijų ex02.py taip:

$ python3 ex02.py

Kaip matote, Selenas teisingai ištraukė lorem ipsum turinį iš tinklalapio.

„Python“ scenarijaus paleidimas ex02.py vėl suteiks jums kitokį išėjimą, kaip matote toliau pateiktoje ekrano kopijoje.

03 pavyzdys: sąrašo duomenų ištraukimas naudojant seleną

Šiame skyriuje aš jums parodysiu žiniatinklio sąrašo duomenų iš svetainės pavyzdį, naudojant „Selenium Firefox Gecko“ tvarkyklę be galvos režimu.

Pirmiausia apsilankykite atsitiktinių pavadinimų generatoriuje.informacijos iš „Firefox“ žiniatinklio naršyklės. Ši svetainė sugeneruos 10 atsitiktinių pavadinimų kiekvieną kartą, kai įkelsite puslapį, kaip matote toliau pateiktoje ekrano kopijoje. Mūsų tikslas yra išgauti šiuos atsitiktinius pavadinimus naudojant Selenium režimą be galvos.

Norėdami sužinoti sąrašo HTML struktūrą, turite atidaryti „Firefox“ kūrėjo įrankis. Norėdami tai padaryti, paspauskite dešinį pelės mygtuką (RMB) puslapyje ir spustelėkite Patikrinkite elementą (Q).

„Firefox“ kūrėjo įrankis turėtų būti atidaryta. Spustelėkite Tikrinti piktogramą () kaip pažymėta toliau pateiktoje ekrano kopijoje.

Tada užveskite pelės žymeklį virš Atsitiktiniai vardai. Sąrašas turėtų būti paryškintas, kaip pažymėta toliau pateiktoje ekrano kopijoje. Tada paspauskite kairįjį pelės mygtuką (LMB), kad pasirinktumėte sąrašą.

Sąrašo HTML kodas turėtų būti paryškintas Inspektorius skirtukas „Firefox“ kūrėjo įrankis. Čia atsitiktinių vardų sąrašas yra a div elementas. The div elementas turi klasė vardas rezultatus. Jo viduje mes turime ol elementas su klasė vardas vardų sarašas. Viduje ol elementas, kiekvienas iš pavadinimų yra a li elementas.

Iš to galime pasakyti, kad patektume į li žymes, mes turime laikytis div.rezultatai> ol.nameList> li

Taigi, mūsų CSS selektorius bus div.rezultatai ol.nameList li (tiesiog pakeiskite > ženklai su tarpais)

Norėdami išgauti šiuos atsitiktinius pavadinimus, sukurkite naują „Python“ scenarijų ex03.py ir įveskite joje šias kodų eilutes.

iš seleno importo žiniatinklio tvarkyklės
iš seleno.žiniatinklio tvarkyklė.„Firefox“.importuoti Parinktys
iš seleno.žiniatinklio tvarkyklė.paplitęs.raktai importuoja raktus
firefoxOptions = Parinktys ()
„Firefox“ parinktys.add_argument ("- be galvos")
naršyklė = žiniatinklio tvarkyklė.„Firefox“ (vykdomojo_path = "./ drivers / geckodriver ", options = firefoxOptions)
naršyklė.get ("http: // atsitiktinio pavadinimo generatorius.informacija / ")
nameList = naršyklė.find_elements_by_css_selector ('div.rezultatai ol.nameList li ')
vardui vardo sąraše:
spausdinti (pavadinimas.tekstas)
naršyklė.mesti ()

Kai baigsite, išsaugokite ex03.py „Python“ scenarijus.

10 eilutė įkelia atsitiktinių pavadinimų generatoriaus svetainę naudodama naršyklė.gauti () metodas.

11 eilutėje parenkamas vardų sąrašas naudojant naršyklė.find_elements_by_css_selector () metodas. Šis metodas naudojamas CSS parinkikliu div.rezultatai ol.nameList li norėdami rasti vardų sąrašą. Tada vardų sąrašas saugomas vardų sarašas kintamasis.

13 ir 14 eilutėse a dėl kilpa naudojama kartoti per vardų sarašas sąrašas li elementai. Kiekvienoje iteracijoje turinys li elementas atspausdintas ant konsolės.

Dabar paleiskite „Python“ scenarijų ex03.py taip:

$ python3 ex03.py

Kaip matote, „Python“ scenarijus ex03.py parsinešė visus atsitiktinius pavadinimus iš tinklalapio.

Jei paleisite scenarijų antrą kartą, jis turėtų grąžinti naują atsitiktinių pavadinimų sąrašą, kaip matote toliau pateiktoje ekrano kopijoje.

Išvada:

Šis straipsnis turėtų padėti jums pradėti naudotis „Selenium“ naudojant „Firefox“ žiniatinklio naršyklę. Turėtumėte sugebėti gana lengvai nustatyti „Selenium Firefox Gecko“ tvarkyklės projektą ir paleisti naršyklės testus, žiniatinklio automatizavimo ir žiniatinklio grandymo užduotis.

Kaip užfiksuoti ir perduoti savo žaidimų sesiją sistemoje „Linux“
Anksčiau žaidimai buvo laikomi tik pomėgiu, tačiau laikui bėgant lošimų pramonė labai augo technologijų ir žaidėjų skaičiaus atžvilgiu. Žaidimų audito...
Geriausi žaidimai, kuriuos reikia žaisti naudojant rankos stebėjimą
„Oculus Quest“ neseniai pristatė puikią rankos stebėjimo be valdiklių idėją. „Oculus Quest“ rankų sekimo žaidimai iki šiol buvo ribojami, kai žaidimų ...
Kaip rodyti OSD perdangą viso ekrano „Linux“ programose ir žaidimuose
Žaisdami viso ekrano žaidimus arba naudodamiesi programomis be išsiblaškymo viso ekrano režimu, galite nutraukti nuo susijusios sistemos informacijos,...