Selenium

Seleniumi juhtimine Chrome'iga peata

Seleniumi juhtimine Chrome'iga peata
Kui soovite teha seleeni veebiautomaatikat või veebi sirvimist Chrome'i veebibrauseriga, töötab see vaikimisi Chrome'i veebibrauseri graafilise versiooniga. See ei ole probleem, kui käitate oma Seleeni skripti Linuxi graafilise töölaua keskkonnas (st.e., GNOME 3, KDE, XFCE4). Kuid kui soovite oma Seleeni skripti käivitada peata keskkonnas (st.e., Ubuntu Server, CentOS / RHEL Server), kuhu pole installitud graafilist töölaua keskkonda, siis see ei toimi.

Õnneks saate seleeni konfigureerida Chrome'i veebibrauseri juhtimiseks peata režiimis. Selles režiimis töötab Chrome'i veebibrauser ilma graafilise kasutajaliideseta. Niisiis, Selenium saab teha veebiautomaatikat, veebi vanametalli, brauseri teste jne. Chrome'i veebibrauseri kasutamine Linuxi serverites, kuhu pole installitud graafilist töölaua keskkonda.

Selles artiklis näitan teile, kuidas käivitada Seleni Chrome'i veebibrauseriga peata režiimis. Kasutan Seleeni Pythoni teeki ja kirjutan Seleeni skriptid Python 3 programmeerimiskeelt kasutades. Alustame siis.

Eeldused:

Selle artikli käskude ja näidete proovimiseks peab teil olema,

1) teie arvutisse installitud Linuxi levitamine (eelistatult Ubuntu).
2) teie arvutisse installitud Python 3.
3) PIP 3 arvutisse installitud.
4) Google Chrome on teie arvutisse installitud.

LinuxHintist leiate palju teemasid käsitlevaid artikleid.com. Kontrollige neid kindlasti, kui vajate abi.

Python 3 virtuaalse keskkonna ettevalmistamine projekti jaoks:

Pythoni virtuaalset keskkonda kasutatakse eraldatud Pythoni projekti kataloogi loomiseks. PIP-i abil installitud Pythoni moodulid installitakse ainult projekti kataloogi, mitte globaalselt.

Python virtualenv moodulit kasutatakse Pythoni virtuaalsete keskkondade haldamiseks.

Saate installida Pythoni virtualenv moodulit globaalselt, kasutades PIP 3 järgmiselt:

$ sudo pip3 installige virtualenv

Python virtualenv tuleks paigaldada.

Looge projekti kataloog kroomitud peata / oma praeguses töökataloogis järgmiselt:

$ mkdir -pv chrome-headless / draiverid

Navigeerige oma hiljuti loodud projektikataloogi kroomitud peata / järgnevalt:

$ cd kroomitud /

Looge oma projekti kataloogis Pythoni virtuaalne keskkond järgmise käsuga:

$ virtualenv .venv

Pythoni virtuaalne keskkond tuleks luua .venv / oma projekti kataloogis.

Aktiveerige oma projekti kataloogi Pythoni virtuaalne keskkond järgmise käsuga:

allikas $ .venv / bin / aktiveeri

Selenium Pythoni teegi installimine:

Seleenikogu on saadaval ametlikus Python PyPI hoidlas.

Selenium Pythoni teegi saate installida PIP 3 abil järgmiselt:

$ pip3 installige seleen

Selenium Pythoni teek tuleks installida.

Chrome'i veebidraiveri installimine:

Chrome'i veebidraiver võimaldab teil seleeni kaudu Google Chrome'i veebibrauserit juhtida või automatiseerida.

Selles jaotises näitan teile, kuidas Chrome'i veebidraiverit installida.

Esmalt avage Google Chrome ja külastage chrome: // settings / help.

Kui leht on laaditud, peaksite Google Chrome'i versiooninumbri leidma saidilt Teave Chrome'i kohta jaotises. Pange tähele versiooni numbri 3 esimest jaotist, nagu on märgitud alloleval ekraanipildil.

Chrome'i veebidraiveri allalaadimiseks külastage ametlikku Chrome'i draiveri allalaadimislehte.

Aastal Praegused väljaanded jaotises peaks olema saadaval Chrome'i veebidraiver Google Chrome'i veebibrauseri uusimate väljalasete jaoks, nagu näete alloleval ekraanipildil. Ühel praegusel Chrome'i veebidraiveri versioonil peaks olema teie Google Chrome'i veebibrauseriga vastav versiooninumber. Chrome'i veebidraiveri ja Google Chrome'i veebibrauseri versiooninumbri esimesed 3 jaotist peavad vastama.

Kui otsitavat versiooni pole Praegused väljalasked jaotises, kerige veidi alla ja peaksite selle leidma.

Kui klõpsate Chrome'i veebidraiveri versiooninumbril, peaks see minema selle allalaadimislehele. Klõpsake nuppu chromedriver_linux64.tõmblukk fail siit.

Chrome'i veebidraiveri arhiiv tuleks alla laadida.

Allalaaditud chromedriver_linux64.tõmblukk fail peaks olema teie ~ / Allalaadimised kataloogi.

$ ls -lh ~ / Allalaadimised

Väljavõte chromedriver_linux64.tõmblukk arhiiv ~ / Allalaadimised kataloogi autojuhid / oma projekti kataloog järgmiselt:

$ unzip ~ / Downloads / chromedriver_linux64.zip -d draiverid /

Uus fail kromedriver tuleks luua autojuhid / teie projekti kataloog, kui Chrome'i veebidraiveri arhiiv on välja tõmmatud, nagu näete alloleval ekraanipildil.

Chrome'i veebidraiveri testimine peata režiimis:

Selles jaotises näitan teile, kuidas seleeni käivitada Chrome'i draiveri abil peata režiimis.

Kõigepealt looge uus Pythoni skript ex01.py oma projekti kataloogi ja tippige sinna järgmised koodiread.

seleeni impordi veebidraiverilt
seleenist.veebidraiver.tavaline.võtmed impordivad võtmeid
seleenist.veebidraiver.kroomitud.suvandite importimine Valikud
chromeOptions = Valikud ()
kroomValikud.peata = tõsi
brauser = veebidraiver.Chrome (käivitatava_tee = "./ draiverid / chromedriver ", valikud = chromeOptions)
brauser.get ("http: // linuxhint.com ")
print ("Pealkiri:% s"% brauser.pealkiri)
brauser.lõpetage ()

Kui olete valmis, salvestage ex01.py Pythoni skript.

Need read impordivad kogu vajaliku kraami seleen raamatukogu.

Nagu ma varem ütlesin, proovib Chrome'i draiver vaikimisi käivitada Google Chrome'i graafilises režiimis. Google Chrome'i töötamiseks peata režiimis peame käskima Chrome'i draiveril anda mõned lisavõimalused. See rida loob Valikud objekti, mille saame hiljem Chrome'i veebidraiverile edastada.

Google Chrome'i saate juhtida peata režiimis, lihtsalt seadistades peata vara kroomValikud vastu Tõsi.

Või võite kasutada add_argument () meetod kroomValikud objekt lisada -peata käsurea argument Google Chrome'i juhtimiseks peata režiimis, kasutades Selenium Chrome'i veebidraiverit.

Võite kasutada a veebidraiver.Chrome () meetod Google Chrome'i veebibrauseri lähtestamiseks / käitamiseks Seleniumist. The käivitatav_tee argumenti kasutatakse seleeni kasutamiseks kromedriver binaarne autojuhid / projekti kataloog. The valikud argument käsib seleenil kasutada meie kohandatud valikuid kroomValikud.

Kui Selenium käivitab Google Chrome'i veebibrauseri Selenium Chrome'i veebidraiveri abil, tagastab see a brauser objekt. Saame seda hiljem Google Chrome'i eksemplari juhtimiseks.

The brauser.saada () meetod laadib linuxhint.com veebisait Google Chrome'i veebibrauseris taustal (peata režiimis).

Kui leht on laaditud, brauser.pealkiri vara saab veebisaidi pealkirja. Python print () meetod prindib konsoolile veebisaidi pealkirja.

Siis brauser.lõpetage () meetod sulgeb Google Chrome'i veebibrauseri.

Proovige, kas seleen võib töötada peata režiimis, käivitage Pythoni skript ex01.py järgnevalt:

$ python3 ex01.py

See peaks printima konsoolile veebisaidi pealkirja ilma Google Chrome'i veebibrauserit graafilises režiimis avamata.

Lihtsalt selleks, et näidata teile, et see töötab Linuxi peata serveritest (kuhu pole installitud graafilist kasutajaliidest), olen käivitanud Pythoni skripti ex01.py Ubuntu Server 20-s.04 LTS. Nagu näete, töötab skript suurepäraselt.

Veebikraapimine seleeniga peata režiimis Chrome'i veebidraiveri abil:

Selles jaotises näitan teile veebi lammutamise näidet Seleenis, kasutades Chrome'i veebidraiverit peata režiimis.

Kõigepealt külastage juhuslike nimede generaatorit.teave Google Chrome'ist või mõnest muust veebibrauserist. See veebisait genereerib iga lehe uuesti laadimisel 10 juhuslikku nime, nagu näete alloleval ekraanipildil. Meie eesmärk on eraldada need juhuslikud nimed seleeni abil peata režiimis.

Loendi HTML-struktuuri välja selgitamiseks peate avama Chrome'i arendaja tööriist. Selleks vajutage lehel hiire paremat nuppu (RMB) ja klõpsake nuppu Kontrollige või vajutage + + Mina.

Chrome'i arendaja tööriist tuleks avada. Klõpsake nuppu Kontrolli ikoon () nagu on märgitud alloleval ekraanipildil.

Seejärel hõljutage kursorit loendi kohal Juhuslikud nimed. Nimekiri tuleks esile tõsta, nagu on märgitud alloleval ekraanipildil. Seejärel vajutage loendi valimiseks hiire vasakut nuppu (LMB).

Loendis olev HTML-kood tuleks esiletõstetud Elemendid vahekaart Chrome'i arendaja tööriist. Siin on juhuslike nimede loend a sees div element. The div elemendil on klass nimi tulemused. Selle sees on meil ol element koos klass nimi nimekiri. Toas ol elemendis on kõik nimed a-s li element.

Selle põhjal võime öelda, et li sildid, peame järgima div.tulemused> ol.nameList> li

Niisiis, meie CSS-i valik saab olema div.tulemused ol.nameList li (asendage lihtsalt > tähed tühikuga)

Nende juhuslike nimede väljavõtmiseks looge uus Pythoni skript ex02.py ja tippige sinna järgmised koodiread.

seleeni impordi veebidraiverilt
seleenist.veebidraiver.tavaline.võtmed impordivad võtmeid
seleenist.veebidraiver.kroomitud.suvandite importimine Valikud
chromeOptions = Valikud ()
kroomValikud.peata = tõsi
brauser = veebidraiver.Chrome (käivitatava_tee = "./ draiverid / chromedriver ", valikud = chromeOptions)
brauser.get ("http: // juhuslik-nimi-generaator.info / ")
nameList = brauser.find_elements_by_css_selector ('div.tulemused ol.nameList li ')
nime jaoks nimeloendis:
Prindi nimi.tekst)
brauser.lõpetage ()

Kui olete valmis, salvestage ex02.py Pythoni skript.

Olen selgitanud selle artikli eelmises osas ridu 1–8. Need on samad mis aastal ex01.py.

Rida 10 laadib juhusliku nimegeneraatori veebisaidi, kasutades brauser.saada () meetod.

11. rida valib nimekirja, kasutades nuppu brauser.find_elements_by_css_selector () meetod. See meetod kasutab CSS-valijat div.tulemused ol.nameList li nimede loendi leidmiseks. Seejärel salvestatakse nimede loend kausta nimekiri muutuv.

Ridades 13 ja 14 a eest silmust kasutatakse iteratsiooni kaudu nimekiri nimekiri li elemendid. Igas iteratsioonis on tabeli sisu li element trükitakse konsoolile.

Nüüd käivitage Pythoni skript ex02.py järgnevalt:

$ python3 ex02.py

Nagu näete, Pythoni skript ex02.py tõi kõik juhuslikud nimed veebilehelt.

Kui käivitate skripti teist korda, peaks see tagastama uue juhuslike nimede loendi, nagu näete alloleval ekraanipildil.

Seleeni töötamine peata režiimis:

Olete varem näinud, et seleeni käivitamine peata režiimis Chrome'i draiveri abil on sama lihtne kui kroomValikud.peata lipp sellele Tõsi.

See lahendus ei pruugi mõnes Linuxi jaotuses teie jaoks töötada. Selles jaotises räägin mõnest probleemist, mis võib juhtuda, kui kasutate seleeni peata režiimis Chrome'i veebidraiveri abil.

Vaikimisi teeb Google Chrome'i veebibrauser palju liivakasti (käitab paljusid asju eraldatud keskkonnas). See võib põhjustada probleeme Seleeni käivitamisel peata režiimis Chrome'i veebidraiveri abil. Saate Google Chrome'is liivakasti keelata, kasutades -ei liivakasti lipp.

Selle lisamiseks -ei liivakasti lipuga, lisage järgmine rida enne Selenium Chrome'i draiveri lähtestamist veebidraiver.Chrome () meetod (rida 8 aastal ex01.py Pythoni skript).

kroomValikud.add_argument ("- no-sandbox")

Seleniumi Google Chrome'i veebibrauseris võib teil tekkida probleeme, näiteks veebisaidi ekraanipiltide tegemine ja nii edasi. See võib juhtuda, kuna peata režiimis võib Google Chrome virtuaalse ekraani eraldusvõime valeks määrata. Seega ei pruugi teie veebisait õige välja näha. Võite määrata Google Chrome'i veebibrauseri jaoks soovitud virtuaalse ekraani eraldusvõime peata režiimis, kasutades -akna suurus käsurea valik.

Näiteks virtuaalse ekraani laiuse määramiseks 1280 pikslit ja kõrgus kuni 720 pikslit, lisage -akna suurus käsureavalik enne Chrome'i draiveri Selenium lähtestamist veebidraiver.Chrome () meetod (rida 8 aastal ex01.py Pythoni skript) järgmiselt:

kroomValikud.add_argument ("- akna suurus = 1280 720")

Teie serveril ei pruugi olla GPU installitud või GPU, mida Google Chrome'i veebibrauser ei tea, kuidas seda kasutada. Vaikimisi peaks Google Chrome GPU kiirendamise automaatselt keelama, kui GPU pole saadaval või kui saadaval on toetamata GPU. Mõnel juhul ei pruugi see seda teha. Sel juhul ei pruugi Selenium juhtida Google Chrome'i veebibrauserit peata režiimis. Selle probleemi lahendamiseks peate GPU kiirenduse keelama -disable-gpu lipp.

Selle lisamiseks -disable-gpu lipuga, lisage järgmine rida enne Selenium Chrome'i draiveri lähtestamist veebidraiver.Chrome () meetod (rida 8 aastal ex01.py Pythoni skript).

kroomValikud.add_argument (“- disable-gpu”)

Järeldus:

Selles artiklis olen teile näidanud, kuidas seleeni Chrome'i veebidraiveri abil peata režiimis seadistada. Olen käsitlenud põhitõdesid, mis aitavad teil alustada peata seleenibrauseri automatiseerimise, veebitestimise ja veebi kraapimisega.

Olen käsitlenud ka mõningaid Google Chrome'i käsurea argumente / lippe, mida saate kasutada mõnede probleemide lahendamiseks, mis võivad tekkida seleni töötamisel peata režiimis Chrome'i veebidraiveri abil.

Saadaval on palju rohkem Google Chrome'i käsureavalikuid, mida ma selles artiklis ei käsitlenud. Need käsureavalikud võivad teie projekti jaoks kasulikud olla. Kõik toetatud Google Chrome'i käsureavalikud leiate lehelt Kroomi käsurealülitite loend Peter Beverloo poolt.

Lahing Wesnothi õpetuse eest
Battle for Wesnoth on üks populaarsemaid avatud lähtekoodiga strateegiamänge, mida saate praegu mängida. See mäng pole mitte ainult olnud väga pikka a...
0 A.D. Õpetus
Paljudest strateegiamängudest on 0 A.D. suudab silma paista põhjaliku tiitli ja väga sügava taktikalise mänguna, hoolimata sellest, et see on avatud l...
Unity3D õpetus
Sissejuhatus Unity 3D-sse Unity 3D on võimas mängude arendamise mootor. See on platvormidevaheline, mis võimaldab teil luua mänge mobiilseadmetele, ve...