Selenium

Elementų nustatymas naudojant CSS selektorius su selenu

Elementų nustatymas naudojant CSS selektorius su selenu
Elementų suradimas ir pasirinkimas iš tinklalapio yra raktas į žiniatinklio naudojimą naudojant „Selenium“. Norėdami rasti ir pasirinkti elementus iš tinklalapio, galite naudoti CSS selektorius „Selenium“.Šiame straipsnyje aš jums parodysiu, kaip surasti ir pasirinkti elementus iš tinklalapių naudojant CSS selektorius „Selenium“ su „Selenium python“ biblioteka. 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) „Python“ virtualenv paketą, įdiegtą jūsų kompiuteryje.
5) „Mozilla Firefox“ arba „Google Chrome“ žiniatinklio naršyklės, įdiegtos jūsų kompiuteryje.
6) Turi žinoti, kaip įdiegti „Firefox Gecko“ tvarkyklę arba „Chrome“ žiniatinklio tvarkyklę.

Norėdami įvykdyti 4, 5 ir 6 reikalavimus, perskaitykite mano straipsnį Įvadas į seleną su „Python 3“ „Linuxhint“.com.

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

Projektų katalogo nustatymas:

Kad viskas būtų tvarkinga, sukurkite naują projekto katalogą selenium-css-selector / taip:

$ mkdir -pv selenium-css-selector / tvarkyklės

Eikite į selen-css-selector / projekto katalogą taip:

$ cd selenium-css-selector /

Projekto kataloge sukurkite virtualią „Python“ aplinką taip:

$ virtualenv .venv

Suaktyvinkite virtualią aplinką taip:

$ šaltinis .venv / bin / aktyvuoti

Įdiekite „Selenium Python“ biblioteką naudodami PIP3 taip:

$ pip3 įdiekite seleną

Atsisiųskite ir įdiekite visą reikiamą žiniatinklio tvarkyklę vairuotojai / projekto katalogas. Savo straipsnyje paaiškinau žiniatinklio tvarkyklių atsisiuntimo ir diegimo procesą Įvadas į seleną su „Python 3“. Jei jums reikia pagalbos, ieškokite toliau „LinuxHint“.com už tą straipsnį.

Gaukite CSS parinkiklį naudodami „Chrome“ kūrėjo įrankį:

Šiame skyriuje aš jums parodysiu, kaip rasti „Selenium“ norimo pasirinkti tinklalapio elemento CSS selektorių naudojant „Google Chrome“ žiniatinklio naršyklės integruotą kūrėjo įrankį.

Norėdami gauti CSS parinkiklį naudodami „Google Chrome“ žiniatinklio naršyklę, atidarykite „Google Chrome“ ir apsilankykite svetainėje, iš kurios norite išgauti duomenis. Tada tuščiame puslapio plote paspauskite dešinį pelės mygtuką (RMB) ir spustelėkite Apžiūrėkite atidaryti „Chrome“ kūrėjo įrankis.

Taip pat galite paspausti + „Shift“ + atidaryti „Chrome“ kūrėjo įrankis.

„Chrome“ kūrėjo įrankis turėtų būti atidaryta.

Norėdami rasti norimo tinklalapio elemento HTML vaizdą, spustelėkite Apžiūrėkite() piktogramą, pažymėtą žemiau esančioje ekrano kopijoje.

Tada užveskite pelės žymeklį virš norimo tinklalapio elemento ir paspauskite kairįjį pelės mygtuką (LMB), kad jį pasirinktumėte.

Pasirinkto žiniatinklio elemento HTML atvaizdavimas bus paryškintas Elementai skirtukas „Chrome“ kūrėjo įrankis kaip matote toliau pateiktoje ekrano kopijoje.

Norėdami gauti norimo elemento CSS selektorių, pasirinkite elementą iš Elementai skirtukas „Chrome“ kūrėjo įrankis ir dešiniuoju pelės mygtuku spustelėkite (RMB) ant jo. Tada pasirinkite Kopijuoti > Kopijavimo parinkiklis kaip pažymėta toliau pateiktoje ekrano kopijoje.

CSS selektorių įklijavau į teksto rengyklę. CSS parinkiklis atrodo taip, kaip parodyta toliau pateiktoje ekrano kopijoje.

Gaukite CSS parinkiklį naudodami „Firefox“ kūrėjų įrankį:

Šiame skyriuje aš jums parodysiu, kaip rasti „Selenium“ norimo pasirinkti tinklalapio elemento CSS selektorių naudojant „Mozilla Firefox“ žiniatinklio naršyklės integruotą kūrėjo įrankį.

Norėdami gauti CSS parinkiklį naudodami „Firefox“ interneto naršyklę, atidarykite „Firefox“ ir apsilankykite svetainėje, iš kurios norite išgauti duomenis. Tada tuščiame puslapio plote paspauskite dešinį pelės mygtuką (RMB) ir spustelėkite Patikrinkite elementą (Q) atidaryti „Firefox“ kūrėjo įrankis.

„Firefox“ kūrėjo įrankis turėtų būti atidaryta.

Norėdami rasti norimo tinklalapio elemento HTML vaizdą, spustelėkite Apžiūrėkite() piktogramą, pažymėtą žemiau esančioje ekrano kopijoje.

Tada užveskite pelės žymeklį virš norimo tinklalapio elemento ir paspauskite kairįjį pelės mygtuką (LMB), kad jį pasirinktumėte.

Pasirinkto žiniatinklio elemento HTML atvaizdavimas bus paryškintas Inspektorius skirtukas „Firefox“ kūrėjo įrankis kaip matote toliau pateiktoje ekrano kopijoje.

Norėdami gauti norimo elemento CSS selektorių, pasirinkite elementą iš Inspektorius skirtukas „Firefox“ kūrėjo įrankis ir dešiniuoju pelės mygtuku spustelėkite (RMB) ant jo. Tada pasirinkite Kopijuoti > CSS parinkiklis kaip pažymėta toliau pateiktoje ekrano kopijoje.

Jūsų norimo elemento CSS parinkiklis turėtų atrodyti maždaug taip.

Duomenų išskyrimas naudojant CSS selektorių su selenu:

Šiame skyriuje aš jums parodysiu, kaip pasirinkti tinklalapio elementus ir iš jų išgauti duomenis naudojant CSS selektorius su „Selenium Python“ biblioteka.

Pirmiausia sukurkite naują „Python“ scenarijų ex00.py ir įveskite šias kodų eilutes.

iš seleno importo žiniatinklio tvarkyklės
iš seleno.žiniatinklio tvarkyklė.paplitęs.raktai importuoja raktus
iš seleno.žiniatinklio tvarkyklė.paplitęs.importuojant Iki
parinktys = žiniatinklio tvarkyklė.„Chrome“ parinktys ()
galimybės.be galvos = Tiesa
naršyklė = žiniatinklio tvarkyklė.„Chrome“ (vykdomojo_ kelias = "./ tvarkyklės / chromedriver ", parinktys = parinktys)
naršyklė.gauti ("https: // www.unixtimestamp.com / ")
laiko žymė = naršyklė.find_element_by_css_selector ('h3.teksto pavojus: n-tasis vaikas (3) ')
spausdinti ('Dabartinė laiko žymė:% s'% (laiko žymė.teksto.padalinti (") [0]))
naršyklė.Uždaryti()

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

1-3 eilutė importuoja visus reikiamus seleno komponentus.

5 eilutė sukuria „Chrome“ parinkčių objektą, o 6 eilutė įgalina „Chrome“ žiniatinklio naršyklės režimą be galvos.

8 eilutė sukuria „Chrome“ naršyklė objektas naudojant chromedriver dvejetainis iš vairuotojai / projekto katalogas.

10 eilutė nurodo naršyklei įkelti svetainės unikalų antspaudą.com.

12 eilutėje, naudojant CSS selektorių, surandamas elementas, kuriame yra laiko žymos duomenys iš puslapio, ir jis saugomas laiko žyma kintamasis.

13 eilutė analizuoja laiko žymos duomenis iš elemento ir atspausdina juos konsolėje.

Taip sukuriama UNIX laiko žymos duomenų HTML struktūra „unixtimestamp“.com atrodo taip.

14 eilutė uždaro naršyklę.

Paleiskite „Python“ scenarijų ex00.py taip:

$ python3 ex00.py

Kaip matote, laiko žymos duomenys spausdinami ekrane.

Čia aš naudojau naršyklė.find_element (pagal, selektorius) metodas.

Kadangi mes naudojame CSS selektorius, pirmasis parametras bus Iki.CSS_SELECTOR o antrasis parametras bus pats CSS selektorius.

Vietoj naršyklė.rasti_elementas () metodą, taip pat galite naudoti naršyklė.find_element_by_css_selector (selektorius) metodas. Kad šis metodas veiktų, reikia tik CSS parinkiklio. Rezultatas bus tas pats.

The naršyklė.rasti_elementas () ir naršyklė.find_element_by_css_selector () metodai naudojami norint rasti ir pasirinkti vieną elementą iš tinklalapio. Jei norite rasti ir pasirinkti kelis elementus naudodami CSS selektorius, turite naudoti naršyklė.find_elements () ir naršyklė.find_elements_by_css_selector () metodai.

The naršyklė.find_elements () metodas apima tuos pačius argumentus kaip ir naršyklė.rasti_elementas () metodas.

The naršyklė.find_elements_by_css_selector () metodas turi tą patį argumentą kaip ir naršyklė.find_element_by_css_selector () metodas.

Pažiūrėkime vardų sąrašo ištraukimo naudojant CSS selektorių pavyzdį iš atsitiktinių pavadinimų generatoriaus.informacija su Selenu.

Kaip matote, nesutvarkytas sąrašas turi klasės pavadinimą vardų sarašas. Taigi, mes galime naudoti CSS selektorių .nameList li norėdami pasirinkti visus vardus iš tinklalapio.

Peržiūrėkime kelių elementų pasirinkimo iš tinklalapio pavyzdį naudodami CSS selektorius.

Sukurkite naują „Python“ scenarijų ex01.py ir įveskite joje šias kodų eilutes.

iš seleno importo žiniatinklio tvarkyklės
iš seleno.žiniatinklio tvarkyklė.paplitęs.raktai importuoja raktus
iš seleno.žiniatinklio tvarkyklė.paplitęs.importuojant Iki
parinktys = žiniatinklio tvarkyklė.„Chrome“ parinktys ()
galimybės.be galvos = Tiesa
naršyklė = žiniatinklio tvarkyklė.„Chrome“ (vykdomojo_ kelias = "./ tvarkyklės / chromedriver ", parinktys = parinktys)
naršyklė.get ("http: // atsitiktinio pavadinimo generatorius.informacija / ")
vardai = naršyklė.find_elements (Autorius.CSS_SELECTOR, '.nameList li ')
vardui varduose:
spausdinti (pavadinimas.tekstas)
naršyklė.Uždaryti()

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

1-8 eilutė yra tokia pati kaip ir ex00.py „Python“ scenarijus. Taigi, aš čia jų daugiau nepaaiškinsiu.

10 eilutėje nurodoma naršyklei įkelti svetainę atsitiktinių pavadinimų generatoriumi.info.

12 eilutėje parenkamas vardų sąrašas naudojant naršyklė.find_elements () metodas. Šis metodas naudojamas CSS parinkikliu .nameList li norėdami rasti vardų sąrašą. Tada vardų sąrašas saugomas vardai kintamasis.

13 ir 14 eilutėse a dėl kilpa naudojama kartoti per vardai sąrašą ir atspausdinkite vardus konsolėje.

16 eilutė uždaro naršyklę.

Paleiskite „Python“ scenarijų ex01.py taip:

$ python3 ex01.py

Kaip matote, vardai išgaunami iš tinklalapio ir spausdinami ant konsolės.

Užuot naudoję naršyklė.find_elements () metodą, taip pat galite naudoti naršyklė.find_elements_by_css_selector () metodas kaip ir anksčiau. Kad šis metodas veiktų, reikia tik CSS parinkiklio. Rezultatas bus tas pats.

CSS selektorių pagrindai:

Visada galite rasti tinklalapio elemento CSS parinkiklį naudodami „Firefox“ arba „Chrome“ žiniatinklio naršyklės kūrėjo įrankį. Šis automatiškai sugeneruotas CSS parinkiklis gali būti ne tas, ko norite. Kartais gali tekti parašyti CSS parinkiklį.

Šiame skyriuje kalbėsiu apie CSS parinkiklių pagrindus, kad galėtumėte suprasti, ką tam tikras CSS parinkėjas renkasi iš tinklalapio, ir, jei reikia, parašyti pasirinktinį CSS parinkiklį.

Jei norite pasirinkti elementą iš tinklalapio naudodami ID pranešimą, CSS parinkiklis bus # žinutė.

CSS parinkiklis .žalias pasirinks elementą naudodamas klasės pavadinimą žalias.

Jei norite pasirinkti elementą (klasę pranešimas) kito elemento (klasės konteinerį), CSS parinkiklis bus .konteinerį .pranešimas

CSS parinkiklis .pranešimas.sėkmė pasirinks elementą, kuriame yra dvi CSS klasės pranešimas ir sėkmė.

Norėdami pasirinkti visus p žymas, galite naudoti CSS selektorių p.

Norėdami pasirinkti tik p žymos div žymas, galite naudoti CSS selektorių div p

Norėdami pasirinkti p žymos, kurios yra tiesioginiai div žymas, galite naudoti CSS selektorių div> p

Norėdami pasirinkti visus ruožas ir p žymas, galite naudoti CSS selektorių p, span

Norėdami pasirinkti p žymelę iškart po div žymą, galite naudoti CSS selektorių div + p

Norėdami pasirinkti p žymė po div žymą, galite naudoti CSS selektorių div ~ p

Norėdami pasirinkti visus p žymos, turinčios klasės pavadinimą pranešimas, galite naudoti CSS selektorių p.pranešimas

Norėdami pasirinkti visus ruožas žymos, turinčios klasės pavadinimą pranešimas, galite naudoti CSS selektorių ruožas.pranešimas

Norėdami pasirinkti visus elementus, kurie turi atributą href, galite naudoti CSS selektorių [href]

Norėdami pasirinkti elementą, kuris turi atributą vardas ir vertė vardas atributas yra Vartotojo vardas, galite naudoti CSS selektorių [vardas = ”vartotojo vardas”]

Norėdami pasirinkti visus elementus, kurie turi atributą alt ir vertė alt atributas, kuriame yra poskyris vscode, galite naudoti CSS selektorių [alt ~ = ”vscode”]

Norėdami pasirinkti visus elementus, turinčius href atributas ir vertė href atributas prasideda eilute https, galite naudoti CSS selektorių [href ^ = ”https”]

Norėdami pasirinkti visus elementus, turinčius href atributas ir vertė href atributas, baigiantis eilute .com, galite naudoti CSS selektorių [href $ = “.com “]

Norėdami pasirinkti visus elementus, turinčius href atributas ir vertė href atributas turi poskyrį google, galite naudoti CSS selektorių [href * = ”google”]

Jei norite pasirinkti pirmąjį li žymos viduje ul žymą, galite naudoti CSS selektorių ul li: pirmasis vaikas

Jei norite pasirinkti pirmąjį li žymos viduje ul žymą, taip pat galite naudoti CSS parinkiklį ul li: n-tasis vaikas (1)

Jei norite pasirinkti paskutinį li žymos viduje ul žymą, galite naudoti CSS selektorių ul li: paskutinis vaikas

Jei norite pasirinkti paskutinį li žymos viduje ul žymą, taip pat galite naudoti CSS parinkiklį ul li: n-tas paskutinis vaikas (1)

Jei norite pasirinkti antrą li žymos viduje ul nuo pradžios, galite naudoti CSS selektorių ul li: n-tasis vaikas (2)

Jei norite pasirinkti trečią li žymos viduje ul nuo pradžios, galite naudoti CSS selektorių ul li: n-tas vaikas (3)

Jei norite pasirinkti antrą li žymos viduje ul pradedant nuo pabaigos, galite naudoti CSS selektorių ul li: n-tas paskutinis vaikas (2)

Jei norite pasirinkti trečią li žymos viduje ul pradedant nuo pabaigos, galite naudoti CSS selektorių ul li: n-tas paskutinis vaikas (3)

Tai dažniausiai naudojami CSS selektoriai. Juos naudosite beveik kiekviename „Selenium“ projekte. CSS pasirinkėjų yra daug daugiau. Visų jų sąrašą galite rasti w3schools.lt CSS selektorių nuoroda.

Išvada:

Šiame straipsnyje aš parodžiau, kaip rasti ir pasirinkti tinklalapio elementus naudojant CSS selektorius su Selenium. Taip pat aptariau CSS selektorių pagrindus. Savo „Selenium“ projektams turėtumėte patogiai naudoti CSS selektorius.

„Vulkan“, skirta „Linux“ vartotojams
Kiekvienos naujos kartos grafikos plokštės matome, kaip žaidimų kūrėjai peržengia grafinės ištikimybės ribas ir artėja prie fotorealizmo. Nepaisant vi...
„OpenTTD“ ir „Simutrans“
Sukurti savo transporto modeliavimą gali būti smagu, atpalaiduojanti ir be galo viliojanti. Štai kodėl jūs turite įsitikinti, kad išbandėte kuo daugia...
„OpenTTD“ pamoka
„OpenTTD“ yra vienas iš populiariausių verslo modeliavimo žaidimų. Šiame žaidime turite sukurti nuostabų transporto verslą. Tačiau pradėsite nuo mažda...