Įvadas į seleną „Python 3“

Introduction Selenium Python 3



Selenas yra sistema, naudojama žiniatinklio programoms tikrinti. „Selenium“ automatizuoja naršyklę, pvz., „Chrome“ ar „Firefox“, kad ji galėtų atlikti norimos svetainės bandymus. Selenas taip pat yra labai galingas žiniatinklio grandymo įrankis. Selenas palaiko „JavaScript“ ir visas šiuolaikines naršyklės funkcijas. Šis įrankis labai efektyviai išgauna informaciją iš svetainių.

Šiame straipsnyje bus parodyta, kaip nustatyti „Selenium“ jūsų „Linux“ platinime (t. Y. „Ubuntu“), taip pat kaip atlikti paprastą žiniatinklio automatizavimą ir žiniatinklio iškarpą naudojant „Selenium Python 3“ biblioteką.







Būtinos sąlygos

Norėdami išbandyti šiame straipsnyje naudojamas komandas ir pavyzdžius, turite turėti:



1) Jūsų kompiuteryje įdiegtas „Linux“ platinimas (pageidautina „Ubuntu“).
2) Python 3 įdiegta jūsų kompiuteryje.
3) PIP 3 įdiegta jūsų kompiuteryje.
4) Jūsų kompiuteryje įdiegta „Google Chrome“ arba „Firefox“ žiniatinklio naršyklė.



Daug straipsnių šiomis temomis rasite adresu LinuxHint.com . Būtinai peržiūrėkite šiuos straipsnius, jei jums reikia papildomos pagalbos.





„Python 3“ virtualios aplinkos paruošimas projektui

„Python“ virtualioji aplinka naudojama norint sukurti izoliuotą „Python“ projektų katalogą. „Python“ moduliai, kuriuos įdiegiate naudodami PIP, bus įdiegti tik projekto kataloge, o ne visame pasaulyje.

Python virtualenv modulis naudojamas valdyti „Python“ virtualią aplinką.



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

$ sudo pip3 įdiegti virtualenv

PIP3 atsisiųs ir visame pasaulyje įdiegs visus reikalingus modulius.

Šiuo metu „Python“ virtualenv modulis turi būti įdiegtas visame pasaulyje.

Sukurkite projekto katalogą python-selenas-bazinis/ dabartiniame darbo kataloge:

$ mkdir -pv python-selenium-basic/tvarkyklės

Eikite į naujai sukurtą projektų katalogą python-selenas-bazinis/ , taip:

$CDpython-selenas-bazinis/

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

$ virtualenv.env

Virtuali aplinka „Python“ dabar turėtų būti sukurta jūsų projektų kataloge “.

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

$ šaltinis.env/bin/aktyvuoti

Kaip matote, šio projekto kataloge suaktyvinta virtualioji „Python“ aplinka.

„Selenium Python“ bibliotekos diegimas

„Selenium Python“ biblioteką galima rasti oficialioje „Python PyPI“ saugykloje.

Šią biblioteką galite įdiegti naudodami PIP 3 taip:

$ pip3 įdiegti seleną

Dabar turėtų būti įdiegta „Selenium Python“ biblioteka.

Dabar, kai „Selenium Python“ biblioteka yra įdiegta, kitas dalykas, kurį turite padaryti, yra įdiegti mėgstamos žiniatinklio naršyklės žiniatinklio tvarkyklę. Šiame straipsnyje aš jums parodysiu, kaip įdiegti „Firefox“ ir „Chrome“ žiniatinklio tvarkykles, skirtas Selenui.

„Firefox Gecko“ tvarkyklės diegimas

„Firefox Gecko“ tvarkyklė leidžia valdyti arba automatizuoti „Firefox“ žiniatinklio naršyklę naudojant seleną.

Norėdami atsisiųsti „Firefox Gecko“ tvarkyklę, apsilankykite „GitHub“ išleidžia „Mozilla“/„Geckodriver“ puslapį iš interneto naršyklės.

Kaip matote, v0.26.0 yra naujausia „Firefox Gecko“ tvarkyklės versija tuo metu, kai buvo parašytas šis straipsnis.

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

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

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

Mano atveju atsisiųsiu 64 bitų „Firefox Gecko“ tvarkyklės versiją.

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

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

Ištraukite geckodriver-v0.26.0-linux64.tar.gz archyvas iš ~/Atsisiuntimai katalogą į vairuotojai/ savo projekto katalogą įvesdami šią komandą:

$degutas -xzf~/Atsisiuntimai/geckodriver-v0.26.0-linux64.tar.gz-Cvairuotojų/

Ištraukus „Firefox Gecko“ tvarkyklių archyvą, naujas gekono vairuotojas dvejetainis failas turėtų būti sukurtas vairuotojai/ savo projekto katalogą, kaip matote žemiau esančioje ekrano kopijoje.

Bandomas seleno „Firefox Gecko“ tvarkyklė

Šiame skyriuje parodysiu, kaip nustatyti pirmąjį „Selenium Python“ scenarijų, kad būtų galima patikrinti, ar „Firefox Gecko“ tvarkyklė veikia.

Pirmiausia atidarykite projektų katalogą python-selenas-bazinis/ su mėgstamu IDE arba redaktoriumi. Šiame straipsnyje naudosiu „Visual Studio Code“.

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

nuoselenasimportasinterneto tvarkyklę
nuoselenas.interneto tvarkyklę.dažnas.raktai importasRaktai
nuo laikas importasmiegoti
naršyklė=interneto tvarkyklę.„Firefox“(vykdomasis_ kelias='./drivers/geckodriver')
naršyklė.gauti(„http://www.google.com“)
miegoti(5)
naršyklė.mesti()

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

Aš paaiškinsiu kodą vėlesniame šio straipsnio skyriuje.

Šioje eilutėje „Selenium“ sukonfigūruotas naudoti „Firefox Gecko“ tvarkyklę iš vairuotojai/ savo projekto katalogą.

Norėdami patikrinti, ar „Firefox Gecko“ tvarkyklė veikia su selenu, atlikite šiuos veiksmus ex01.py „Python“ scenarijus:

$ python3 ex01.py

„Firefox“ žiniatinklio naršyklė turėtų automatiškai apsilankyti Google.com ir po 5 sekundžių užsidaryti. Jei taip atsitinka, „Selenium Firefox Gecko“ tvarkyklė veikia tinkamai.

„Chrome“ žiniatinklio tvarkyklės diegimas

„Chrome“ žiniatinklio tvarkyklė leidžia valdyti arba automatizuoti „Google Chrome“ žiniatinklio naršyklę naudojant seleną.

Turite atsisiųsti tą pačią „Chrome“ žiniatinklio tvarkyklės versiją, kurią naudojate „Google Chrome“ žiniatinklio naršyklėje.

Norėdami sužinoti „Google Chrome“ žiniatinklio naršyklės versijos numerį, apsilankykite chrome: // settings/help „Google Chrome“. Versijos numeris turi būti Apie „Chrome“ skyriuje, kaip matote žemiau esančioje ekrano kopijoje.

Mano atveju versijos numeris yra 83.0.4103.116 . Pirmosios trys versijos numerio dalys ( 83.0.4103 , mano atveju) turi atitikti pirmąsias tris „Chrome“ žiniatinklio tvarkyklės versijos numerio dalis.

Norėdami atsisiųsti „Chrome“ žiniatinklio tvarkyklę, apsilankykite oficialus „Chrome“ tvarkyklės atsisiuntimo puslapis .

Viduje konors Dabartiniai leidiniai skyriuje, bus pasiekiama naujausių „Google Chrome“ žiniatinklio naršyklės versijų „Chrome“ žiniatinklio tvarkyklė, kaip matote toliau esančioje ekrano kopijoje.

Jei jūsų naudojama „Google Chrome“ versija nėra Dabartiniai leidiniai skyriuje, šiek tiek slinkite žemyn ir turėtumėte rasti norimą versiją.

Kai spustelėsite tinkamą „Chrome“ žiniatinklio tvarkyklės versiją, ji turėtų jus nukreipti į kitą puslapį. Spustelėkite chromedriver_linux64.zip nuoroda, kaip nurodyta toliau esančioje ekrano kopijoje.

Dabar turėtumėte atsisiųsti „Chrome“ žiniatinklio tvarkyklės archyvą.

Dabar „Chrome“ žiniatinklio tvarkyklės archyvą reikia atsisiųsti iš ~/Atsisiuntimai katalogą.

Galite išgauti chromedriver-linux64.zip archyvas iš ~/Atsisiuntimai katalogą į vairuotojai/ savo projekto katalogą naudodami šią komandą:

$ unzip~/Atsisiuntimai/chromedriver_linux64.užtrauktukas-d vairuotojai/

Ištraukus „Chrome“ žiniatinklio tvarkyklės archyvą, naujas chromedriver dvejetainis failas turėtų būti sukurtas vairuotojai/ savo projekto katalogą, kaip matote žemiau esančioje ekrano kopijoje.

Bandomas „Selenium Chrome“ žiniatinklio tvarkyklė

Šiame skyriuje parodysiu, kaip nustatyti pirmąjį „Selenium Python“ scenarijų, kad būtų galima patikrinti, ar „Chrome“ žiniatinklio tvarkyklė veikia.

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

nuoselenasimportasinterneto tvarkyklę
nuoselenas.interneto tvarkyklę.dažnas.raktai importasRaktai
nuo laikas importasmiegoti
naršyklė=interneto tvarkyklę.„Chrome“(vykdomasis_ kelias='./drivers/chromedriver')
naršyklė.gauti(„http://www.google.com“)
miegoti(5)
naršyklė.mesti()

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

Aš paaiškinsiu kodą vėlesniame šio straipsnio skyriuje.

Šioje eilutėje selenas sukonfigūruotas naudoti „Chrome“ žiniatinklio tvarkyklę iš vairuotojai/ savo projekto katalogą.

Norėdami patikrinti, ar „Chrome“ žiniatinklio tvarkyklė veikia su selenu, paleiskite ex02.py „Python“ scenarijus:

$ python3 ex01.py

„Google Chrome“ žiniatinklio naršyklė turėtų automatiškai apsilankyti adresu Google.com ir užsidaryti po 5 sekundžių. Jei taip atsitinka, „Selenium Firefox Gecko“ tvarkyklė veikia tinkamai.

Interneto grandymo su selenu pagrindai

Nuo šiol naudojuosi „Firefox“ žiniatinklio naršykle. Jei norite, taip pat galite naudoti „Chrome“.

Pagrindinis „Selenium Python“ scenarijus turėtų atrodyti kaip scenarijus, parodytas žemiau esančioje ekrano kopijoje.

Pirmiausia importuokite seleną interneto tvarkyklę nuo selenas modulis.

Tada importuokite Raktai nuo selenas. interneto tvarkyklė. dažni. raktai . Tai padės nusiųsti klaviatūros klavišus į naršyklę, kurią automatizuojate iš „Seleno“.

Ši eilutė sukuria a naršyklė „Firefox“ žiniatinklio naršyklės objektas, naudojant „Firefox Gecko“ tvarkyklę („Webdriver“). Naudodami šį objektą galite valdyti „Firefox“ naršyklės veiksmus.

Norėdami įkelti svetainę arba URL (įkelsiu svetainę https://www.duckduckgo.com ), paskambinkite gauti () metodas naršyklė objektą „Firefox“ naršyklėje.

Naudodami seleną galite rašyti testus, atlikti žiniatinklio iškarpas ir galiausiai uždaryti naršyklę naudodami mesti () metodas naršyklė objektas.

Aukščiau yra pagrindinis „Selenium Python“ scenarijaus išdėstymas. Šias eilutes rašysite visuose savo „Selenium Python“ scenarijuose.

1 pavyzdys: tinklalapio pavadinimo spausdinimas

Tai bus lengviausias pavyzdys, aptartas naudojant seleną. Šiame pavyzdyje atspausdinsime tinklalapio, kuriame lankysimės, pavadinimą.

Sukurkite naują failą ex04.py ir įveskite šias kodų eilutes.

nuoselenasimportasinterneto tvarkyklę
nuoselenas.interneto tvarkyklę.dažnas.raktai importasRaktai

naršyklė=interneto tvarkyklę.„Firefox“(vykdomasis_ kelias='./drivers/geckodriver')

naršyklė.gauti(„https://www.duckduckgo.com“)
spausdinti('Pavadinimas: %s'% naršyklė.titulas)
naršyklė.mesti()

Kai baigsite, išsaugokite failą.

Čia, naršyklė.pavadinimas yra naudojamas norint pasiekti lankomo tinklalapio pavadinimą ir spausdinti () funkcija bus naudojama pavadinimui spausdinti konsolėje.

Paleidus ex04.py scenarijus turėtų būti:

1) Atidarykite „Firefox“
2) Įkelkite norimą tinklalapį
3) Suraskite puslapio pavadinimą
4) Atspausdinkite pavadinimą konsolėje
5) Galiausiai uždarykite naršyklę

Kaip matote, ex04.py scenarijus puikiai išspausdino tinklalapio pavadinimą konsolėje.

$ python3 ex04.py

2 pavyzdys: kelių tinklalapių pavadinimų spausdinimas

Kaip ir ankstesniame pavyzdyje, naudodami tą patį metodą galite spausdinti kelių tinklalapių pavadinimus naudodami „Python“ kilpą.

Norėdami suprasti, kaip tai veikia, sukurkite naują „Python“ scenarijų ex05.py ir scenarijuje įveskite šias kodo eilutes:

nuoselenasimportasinterneto tvarkyklę
nuoselenas.interneto tvarkyklę.dažnas.raktai importasRaktai

naršyklė=interneto tvarkyklę.„Firefox“(vykdomasis_ kelias='./drivers/geckodriver')


URL= [„https://www.duckduckgo.com“, „https://linuxhint.com“, „https://yahoo.com“]
dėlurlįURL:
naršyklė.gauti(url)
spausdinti('Pavadinimas: %s'% naršyklė.titulas)
naršyklė.mesti()

Baigę išsaugokite „Python“ scenarijų ex05.py .

Čia, URL sąraše saugomas kiekvieno tinklalapio URL.

Į dėl kilpa naudojama iteracijai per URL sąrašo elementus.

Kiekvienos kartojimo metu selenas liepia naršyklei apsilankyti url ir gaukite tinklalapio pavadinimą. Kai selenas ištraukia tinklalapio pavadinimą, jis spausdinamas konsolėje.

Paleiskite „Python“ scenarijų ex05.py , ir jūs turėtumėte pamatyti kiekvieno tinklalapio pavadinimą URL sąrašą.

$ python3 ex05.py

Tai pavyzdys, kaip selenas gali atlikti tą pačią užduotį su keliais tinklalapiais ar svetainėmis.

3 pavyzdys: duomenų ištraukimas iš tinklalapio

Šiame pavyzdyje parodysiu duomenų iš tinklalapių išgavimo naudojant seleną pagrindus. Tai taip pat žinoma kaip žiniatinklio grandymas.

Pirmiausia apsilankykite Random.org nuoroda iš „Firefox“. Puslapis turėtų sugeneruoti atsitiktinę eilutę, kaip matote žemiau esančioje ekrano kopijoje.

Norėdami išgauti atsitiktinės eilutės duomenis naudodami seleną, taip pat turite žinoti duomenų HTML atvaizdavimą.

Norėdami pamatyti, kaip atsitiktinės eilutės duomenys pateikiami HTML, pasirinkite atsitiktinės eilutės duomenis ir paspauskite dešinįjį pelės mygtuką (RMB) ir spustelėkite Patikrinkite elementą (Q) , kaip pažymėta žemiau esančioje ekrano kopijoje.

Duomenų HTML atvaizdavimas turėtų būti rodomas Inspektorius skirtuką, kaip matote žemiau esančioje ekrano kopijoje.

Taip pat galite spustelėti Apžiūros piktograma ( ) patikrinti duomenis iš puslapio.

Spustelėkite patikrinimo piktogramą () ir užveskite pelės žymeklį virš atsitiktinių eilutės duomenų, kuriuos norite išgauti. Duomenų HTML atvaizdavimas turėtų būti rodomas kaip ir anksčiau.

Kaip matote, atsitiktinės eilutės duomenys yra suvynioti į HTML dėl žyma ir joje yra klasė duomenis .

Dabar, kai žinome norimų išgauti duomenų HTML vaizdą, sukursime „Python“ scenarijų duomenims išgauti naudojant seleną.

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

nuoselenasimportasinterneto tvarkyklę
nuoselenas.interneto tvarkyklę.dažnas.raktai importasRaktai

naršyklė=interneto tvarkyklę.„Firefox“(vykdomasis_ kelias='./drivers/geckodriver')

naršyklė.gauti(„https://www.random.org/strings/?num=1&len=20&digits
= on & upperalpha = on & loweralpha = on & unique = on & format = html & rnd = new '
)

dataElement=naršyklė.find_element_by_css_selector('pre.data')
spausdinti(dataElement.tekstas)
naršyklė.mesti()

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

Čia, browser.get () metodas įkelia tinklalapį į „Firefox“ naršyklę.

The browser.find_element_by_css_selector () metodas ieško puslapio HTML kodo konkrečiam elementui ir jį grąžina.

Šiuo atveju elementas būtų pre.data , dėl žyma, turinti klasės pavadinimą duomenis .

Žemiau, pre.data elementas buvo saugomas dataElement kintamasis.

Tada scenarijus spausdina pasirinkto teksto turinį pre.data elementas.

Jei paleisite ex06.py „Python“ scenarijų, jis turėtų išgauti atsitiktinės eilutės duomenis iš tinklalapio, kaip matote žemiau esančioje ekrano kopijoje.

$ python3 ex06.py

Kaip matote, kiekvieną kartą paleisdamas ex06.py „Python“ scenarijų, jis iš tinklalapio išskiria skirtingus atsitiktinės eilutės duomenis.

4 pavyzdys: duomenų sąrašo ištraukimas iš tinklalapio

Ankstesnis pavyzdys parodė, kaip iš tinklalapio išgauti vieną duomenų elementą naudojant seleną. Šiame pavyzdyje aš jums parodysiu, kaip naudojant seleną išgauti duomenų sąrašą iš tinklalapio.

Pirmiausia apsilankykite atsitiktinis-pavadinimas-generator.info iš „Firefox“ žiniatinklio naršyklės. Ši svetainė sukurs dešimt atsitiktinių pavadinimų kiekvieną kartą, kai iš naujo įkeliate puslapį, kaip matote žemiau esančioje ekrano kopijoje. Mūsų tikslas yra išgauti šiuos atsitiktinius pavadinimus naudojant seleną.

Jei atidžiau pažvelgsite į vardų sąrašą, pamatysite, kad tai yra užsakytas sąrašas ( mirti žyma). The mirti žyma taip pat apima klasės pavadinimą vardų sarašas . Visi atsitiktiniai pavadinimai pateikiami kaip sąrašo elementas ( prie žyma) viduje mirti žyma.

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

nuoselenasimportasinterneto tvarkyklę
nuoselenas.interneto tvarkyklę.dažnas.raktai importasRaktai

naršyklė=interneto tvarkyklę.„Firefox“(vykdomasis_ kelias='./drivers/geckodriver')

naršyklė.gauti(„http://random-name-generator.info/“)

vardų sarašas=naršyklė.find_elements_by_css_selector('ol.nameList li')

dėlvardasįvardų sarašas:
spausdinti(vardas.tekstas)

naršyklė.mesti()

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

Čia, browser.get () metodas įkelia atsitiktinių pavadinimų generatoriaus tinklalapį „Firefox“ naršyklėje.

The browser.find_elements_by_css_selector () metodas naudoja CSS selektorių ol.pavadinimasList li rasti viską prie elementai viduje mirti žyma, turinti klasės pavadinimą vardų sarašas . Aš išsaugojau visus pasirinktus prie elementai vardų sarašas kintamasis.

Į dėl kilpa naudojama iteracijai per vardų sarašas sąrašas prie elementai. Kiekvienos kartojimo metu turinys prie elementas spausdinamas ant konsolės.

Jei paleisite ex07.py „Python“ scenarijų, jis atsiųs visus atsitiktinius pavadinimus iš tinklalapio ir atspausdins ekrane, kaip matote žemiau esančioje ekrano kopijoje.

$ python3 ex07.py

Jei scenarijų paleisite antrą kartą, jis turėtų grąžinti naują atsitiktinių vartotojų vardų sąrašą, kaip matote žemiau esančioje ekrano kopijoje.

5 pavyzdys: formos pateikimas - paieška „DuckDuckGo“

Šis pavyzdys yra toks pat paprastas, kaip ir pirmasis. Šiame pavyzdyje aplankysiu „DuckDuckGo“ paieškos variklį ir ieškosiu termino seleno hq naudojant seleną.

Pirma, apsilankykite „DuckDuckGo“ paieškos variklis iš „Firefox“ žiniatinklio naršyklės.

Jei tikrinate paieškos įvesties lauką, jo ID turėtų būti search_form_input_homepage , kaip matote žemiau esančioje ekrano kopijoje.

Dabar sukurkite naują „Python“ scenarijų ex08.py ir scenarijuje įveskite šias kodų eilutes.

nuoselenasimportasinterneto tvarkyklę
nuoselenas.interneto tvarkyklę.dažnas.raktai importasRaktai
naršyklė=interneto tvarkyklę.„Firefox“(vykdomasis_ kelias='./drivers/geckodriver')
naršyklė.gauti(„https://duckduckgo.com/“)
searchInput=naršyklė.find_element_by_id('search_form_input_homepage')
searchInput.send_keys('seleno hq'+ Raktai.Įveskite)

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

Čia, browser.get () metodas įkelia „DuckDuckGo“ paieškos variklio pagrindinį puslapį „Firefox“ žiniatinklio naršyklėje.

The browser.find_element_by_id () metodas pasirenka įvesties elementą su id search_form_input_homepage ir saugo jį searchInput kintamasis.

The searchInput.send_keys () metodas naudojamas klavišų paspaudimo duomenims siųsti įvesties lauke. Šiame pavyzdyje jis siunčia eilutę seleno hq , o klavišas „Enter“ paspaudžiamas naudojant Raktai.ENTRAS pastovus.

Kai tik „DuckDuckGo“ paieškos variklis gauna klavišą „Enter“, paspauskite ( Raktai.ENTRAS ), jis ieško ir rodo rezultatą.

Paleiskite ex08.py „Python“ scenarijus:

$ python3 ex08.py

Kaip matote, „Firefox“ žiniatinklio naršyklė aplankė „DuckDuckGo“ paieškos variklį.

Jis buvo automatiškai įvestas seleno hq paieškos teksto laukelyje.

Kai tik naršyklė gauna įvesties klavišą, paspauskite ( Raktai.ENTRAS ), jis rodė paieškos rezultatą.

6 pavyzdys: formos pateikimas svetainėje W3Schools.com

5 pavyzdyje „DuckDuckGo“ paieškos formą buvo lengva pateikti. Viskas, ką jums reikėjo padaryti, tai paspausti klavišą „Enter“. Tačiau tai nebus taikoma visoms pateiktoms formoms. Šiame pavyzdyje parodysiu sudėtingesnį formų tvarkymą.

Pirmiausia apsilankykite W3Schools.com HTML formų puslapis iš „Firefox“ žiniatinklio naršyklės. Kai puslapis įkeliamas, turėtumėte pamatyti formos pavyzdį. Šią formą pateiksime šiame pavyzdyje.

Jei apžiūrėsite formą, Pirmas vardas įvesties lauke turi būti id f vardas , Pavardė įvesties lauke turi būti id lpavadinimas , ir Pateikimo mygtukas turėtų turėti tipo Pateikti , kaip matote žemiau esančioje ekrano kopijoje.

Norėdami pateikti šią formą naudodami seleną, sukurkite naują „Python“ scenarijų ex09.py ir scenarijuje įveskite šias kodų eilutes.

nuoselenasimportasinterneto tvarkyklę
nuoselenas.interneto tvarkyklę.dažnas.raktai importasRaktai
naršyklė=interneto tvarkyklę.„Firefox“(vykdomasis_ kelias='./drivers/geckodriver')
naršyklė.gauti(„https://www.w3schools.com/html/html_forms.asp“)
f vardas=naršyklė.find_element_by_id('f vardas')
f vardas.aišku()
f vardas.send_keys(„Shahriar“)
lpavadinimas=naršyklė.find_element_by_id('vardas')
lpavadinimas.aišku()
lpavadinimas.send_keys(„Šovonas“)
„SubmitButton“=naršyklė.find_element_by_css_selector('input [type =' pateikti ']')
„SubmitButton“.send_keys(Raktai.Įveskite)

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

Čia, browser.get () metodas atveria „W3schools“ HTML formų puslapį „Firefox“ žiniatinklio naršyklėje.

The browser.find_element_by_id () metodas suranda įvesties laukus pagal id f vardas ir lpavadinimas ir juos saugo f vardas ir lpavadinimas kintamuosius, atitinkamai.

The fname.clear () ir lname.clear () metodai išvalyti numatytąjį vardą (Jonas) f vardas vertė ir pavardė (Doe) lpavadinimas vertę iš įvesties laukų.

The fname.send_keys () ir lname.send_keys () metodų tipas Šariaras ir Šovonas viduje konors Pirmas vardas ir Pavardė atitinkamai įvesties laukus.

The browser.find_element_by_css_selector () metodas pasirenka Pateikimo mygtukas formą ir saugo ją „SubmitButton“ kintamasis.

The submittedButton.send_keys () metodas siunčia Enter klavišą paspausdami ( Raktai.ENTRAS ) į Pateikimo mygtukas formos. Šis veiksmas pateikia formą.

Paleiskite ex09.py „Python“ scenarijus:

$ python3 ex09.py

Kaip matote, forma buvo automatiškai pateikta naudojant teisingus duomenis.

Išvada

Šis straipsnis turėtų padėti jums pradėti naudotis seleno naršyklės testavimu, žiniatinklio automatizavimu ir žiniatinklio iškarpų bibliotekomis „Python 3“. Norėdami gauti daugiau informacijos, žr. oficiali Seleno „Python“ dokumentacija .