V tem članku vam bom pokazal, kako poiskati in izbrati elemente na spletnih straneh z uporabo besedila v seleniju s knjižnico python selenium. Torej, začnimo.
Pogoji:
Če želite preizkusiti ukaze in primere tega članka, morate imeti:
- V vašem računalniku nameščena distribucija Linuxa (po možnosti Ubuntu).
- Python 3 nameščen v vašem računalniku.
- PIP 3 nameščen v vašem računalniku.
- Python virtualenv paket, nameščen v računalniku.
- Spletni brskalniki Mozilla Firefox ali Google Chrome, nameščeni v vašem računalniku.
- Morate vedeti, kako namestiti gonilnik Firefox Gecko ali Chrome Web Driver.
Za izpolnjevanje zahtev 4, 5 in 6 preberite moj članek Uvod v selen v Pythonu 3.
V LinuxHintu lahko najdete veliko člankov o drugih temah.com. Ne pozabite jih preveriti, če potrebujete pomoč.
Nastavitev imenika projektov:
Če želite vse organizirati, ustvarite nov imenik projektov selenium-text-select / kot sledi:
$ mkdir -pv selenium-text-select / drivers
Pomaknite se do selenium-text-select / imenik projekta, kot sledi:
$ cd selenium-text-select /
Ustvarite navidezno okolje Python v imeniku projekta, kot sledi:
$ virtualenv .venv
Aktivirajte navidezno okolje na naslednji način:
$ vir .venv / bin / aktiviraj
Namestite knjižnico Selenium Python s pomočjo PIP3, kot sledi:
$ pip3 namesti selen
Prenesite in namestite ves potrebni spletni gonilnik v vozniki / imenik projekta. V članku sem razložil postopek prenosa in namestitve spletnih gonilnikov Uvod v selen v Pythonu 3.
Iskanje elementov po besedilu:
V tem poglavju vam bom predstavil nekaj primerov iskanja in izbiranja elementov spletnih strani po besedilu s knjižnico Selenium Python.
Začel bom z najpreprostejšim primerom izbire elementov spletne strani z besedilom, izbiranjem povezav s spletne strani.
Na prijavni strani facebooka.com, imamo povezavo Pozabljeni račun? Kot lahko vidite na spodnjem posnetku zaslona. Izberimo to povezavo s selenom.
Ustvarite nov skript Python ex01.py in vanj vnesite naslednje vrstice kod.
iz spletnega pogona za uvoz selenaiz selena.spletni pogon.običajni.tipke za uvoz ključev
iz selena.spletni pogon.običajni.z uvozom Avtor
od časa uvoza spanja
brskalnik = spletni voznik.Chrome (izvršljiva_pot = "./ drivers / chromedriver ")
brskalnik.get ("https: // www.facebook.com / ")
ForgotAccountLink = brskalnik.find_element (avtor.XPATH, "
// * [text () = 'Pozabljen račun?'] ")
ForgotAccountLink.send_keys (Tipke.ENTER)
Ko končate, shranite ex01.py Python skript.
Vrstica 1-4 uvozi vse zahtevane komponente v program Python.
Vrstica 6 ustvari Chrome brskalnik predmet z uporabo kromedriver binarni iz vozniki / imenik projekta.
Vrstica 8 brskalniku sporoča, naj naloži spletno stran facebook.com.
Vrstica 10 najde povezavo, ki vsebuje besedilo Pozabljeni račun? Uporaba izbirnika XPath. Za to sem uporabil izbirnik XPath // * [text () = 'Pozabljen račun?'].
Izbirnik XPath se začne z //, kar pomeni, da je element lahko kjer koli na strani. The * simbol sporoča Seleniju, da izbere katero koli oznako (a ali str ali razpon, itd.), ki ustreza stanju znotraj oglatih oklepajev []. Tu je pogoj, da je besedilo elementa enako Pozabljeni račun?
The besedilo () Funkcija XPath se uporablja za pridobivanje besedila elementa.
Na primer, besedilo () vrne Pozdravljen, svet če izbere naslednji element HTML.
Pozdravljen, svetVrstica 11 pošlje
Zaženite skript Python ex01.py z naslednjim ukazom:
$ python ex01.py
Kot lahko vidite, spletni brskalnik najde, izbere in pritisne
The Pozabljeni račun? Povezava vodi brskalnik na naslednjo stran.
Na enak način lahko enostavno iščete elemente, ki imajo želeno vrednost atributa.
Tukaj Vpiši se gumb je vhod element, ki ima vrednost atribut Vpiši se. Poglejmo, kako ta element izberemo po besedilu.
Ustvarite nov skript Python ex02.py in vanj vnesite naslednje vrstice kod.
iz spletnega pogona za uvoz selenaiz selena.spletni pogon.običajni.tipke za uvoz ključev
iz selena.spletni pogon.običajni.z uvozom Avtor
od časa uvoza spanja
brskalnik = spletni voznik.Chrome (izvršljiva_pot = "./ drivers / chromedriver ")
brskalnik.get ("https: // www.facebook.com / ")
spanje (5)
emailInput = brskalnik.find_element (avtor.XPATH, "// vnos [@ id = 'email']")
passwordInput = brskalnik.find_element (avtor.XPATH, "// vnos [@ id = 'pass']")
loginButton = brskalnik.find_element (avtor.XPATH, "// * [@ value = 'Prijava']")
emailInput.send_keys ('[e-pošta zaščitena]')
spanje (5)
passwordInput.send_keys ('secret-pass')
spanje (5)
loginButton.send_keys (Tipke.ENTER)
Ko končate, shranite ex02.py Python skript.
Vrstica 1-4 uvozi vse zahtevane komponente.
Vrstica 6 ustvari Chrome brskalnik predmet z uporabo kromedriver binarni iz vozniki / imenik projekta.
Vrstica 8 brskalniku pove, naj naloži spletno stran facebook.com.
Ko zaženete skript, se vse zgodi tako hitro. Torej, uporabil sem spanje () večkrat deluje v ex02.py za zakasnitev ukazov brskalnika. Tako lahko opazujete, kako vse deluje.
Vrstica 11 najde besedilno polje za vnos e-pošte in shrani sklic na element v emailInput spremenljivka.
Vrstica 12 najde besedilno polje za vnos e-pošte in shrani sklic na element v emailInput spremenljivka.
Vrstica 13 najde vhodni element, ki ima atribut vrednost od Vpiši se z uporabo izbirnika XPath. Za to sem uporabil izbirnik XPath // * [@ value = 'Prijava'].
Izbirnik XPath se začne z //. To pomeni, da je element lahko kjer koli na strani. The * simbol sporoča Seleniju, da izbere katero koli oznako (vhod ali str ali razpon, itd.), ki ustreza stanju znotraj oglatih oklepajev []. Tu je pogoj atribut element vrednost je enako Vpiši se.
Vrstica 15 pošlje vnos [zaščiteno z e-pošto] v besedilno polje za vnos e-pošte, vrstica 16 pa odloži naslednjo operacijo.
Vrstica 18 pošlje vhodni skrivni prehod v besedilno polje za vnos gesla, vrstica 19 pa odloži naslednjo operacijo.
Vrstica 21 pošlje
Zaženite ex02.py Python skript z naslednjim ukazom:
$ python3 ex02.py
Kot lahko vidite, sta polji za besedilo e-pošte in gesla napolnjeni z našimi navideznimi vrednostmi in Vpiši se pritisnjen gumb.
Nato se stran pomakne na naslednjo stran.
Iskanje elementov po delnem besedilu:
V prejšnjem razdelku sem vam pokazal, kako najti elemente po določenem besedilu. V tem poglavju vam bom pokazal, kako najti elemente s spletnih strani z delnim besedilom.
V primeru, ex01.py, Iskal sem element povezave, ki vsebuje besedilo Pozabljeni račun?. Isti element povezave lahko iščete z delnim besedilom, kot je Pozabljeno po. Če želite to narediti, lahko uporabite vsebuje () Funkcija XPath, kot je prikazano v vrstici 10 ex03.py. Preostale kode so enake kot v ex01.py. Rezultati bodo enaki.
V vrstici 10 od ex03.py, pogoj za izbiro uporabljen vsebuje (vir, besedilo) Funkcija XPath. Ta funkcija ima 2 argumenta, vir, in besedilo.
The vsebuje () funkcija preveri, ali je besedilo v drugem argumentu delno ustreza vir vrednost v prvem argumentu.
Vir je lahko besedilo elementa (besedilo ()) ali vrednost atributa elementa (@attr_name).
V ex03.py, besedilo elementa se preveri.
Druga uporabna funkcija XPath za iskanje elementov s spletne strani z delnim besedilom je začne se z (vir, besedilo). Ta funkcija ima enake argumente kot vsebuje () funkcija in se uporablja na enak način. Edina razlika je v tem, da začne se z () funkcija preveri, ali je drugi argument besedilo je začetni niz prvega argumenta vir.
Primer sem prepisal ex03.py za iskanje elementa, za katerega se besedilo začne Pozabljeno, kot lahko vidite v vrstici 10 od ex04.py. Rezultat je enak kot pri ex02 in ex03.py.
Sem tudi prepisal ex02.py tako da išče vhodni element, za katerega je vrednost atribut se začne z Dnevnik, kot lahko vidite v vrstici 13 od ex05.py. Rezultat je enak kot pri ex02.py.
Zaključek:
V tem članku sem vam pokazal, kako poiščite in izberete elemente s spletnih strani po besedilu s knjižnico Selenium Python. Zdaj bi lahko s knjižnico Selenium Python našli elemente s spletnih strani po določenem besedilu ali delnem besedilu.