Selenium

Selēna lietošana ar Firefox draiveri

Selēna lietošana ar Firefox draiveri
Selēns ir lielisks rīks pārlūkprogrammas testēšanai, tīmekļa automatizēšanai un tīmekļa nokasīšanai. Selēns var kontrolēt lielāko daļu mūsdienu tīmekļa pārlūkprogrammu. i.e., Firefox, Chrome, Chromium, Opera, Apple Safari. Lai kontrolētu pārlūku, Selenium ir nepieciešams rīks ar nosaukumu Web draiveris. Lielākā daļa mūsdienu pārlūku pārdevēju nodrošina tīmekļa draiveru programmatūru savām tīmekļa pārlūkprogrammām.

Lai no Selenium vadītu Mozilla Firefox tīmekļa pārlūkprogrammu, jums jāizmanto Gecko tīmekļa draiveris.

Šajā rakstā es parādīšu, kā iestatīt selēnu pārlūka testu, tīmekļa automatizācijas un tīmekļa skrāpēšanas uzdevumu veikšanai, izmantojot tīmekļa pārlūkprogrammu Mozilla Firefox. Tātad, sāksim darbu.

Priekšnosacījumi:

Lai izmēģinātu šī raksta komandas un piemērus, jums ir jābūt,

1) Linux izplatīšana (vēlams, Ubuntu), kas instalēta jūsu datorā.
2) Python 3 instalēts jūsu datorā.
3) PIP 3 instalēts jūsu datorā.
4) datorā instalēta Mozilla Firefox.

Vietnē LinuxHint varat atrast daudz rakstu par šīm tēmām.com. Noteikti pārbaudiet tos, ja jums nepieciešama palīdzība.

Python 3 virtuālās vides sagatavošana projektam:

Python virtuālo vidi izmanto, lai izveidotu izolētu Python projekta direktoriju. Python moduļi, kurus instalējat, izmantojot PIP, tiks instalēti tikai projekta direktorijā, nevis globāli.

Python virtualenv modulis tiek izmantots, lai pārvaldītu Python virtuālās vides.

Jūs varat instalēt Python virtualenv moduli, izmantojot PIP 3 šādi:

$ sudo pip3 instalējiet virtualenv

Python virtualenv jāuzstāda.

Izveidojiet projekta direktoriju selēns-Firefox / pašreizējā darba direktorijā šādi:

$ mkdir -pv selenium-firefox / draiveri

Pārejiet uz jaunizveidoto projektu direktoriju selēns-Firefox / sekojoši:

$ cd selēns-Firefox /

Izveidojiet Python virtuālo vidi projekta direktorijā ar šādu komandu:

$ virtualenv .venv

Python virtuālā vide ir jāizveido jūsu projekta direktorijā.

Aktivizējiet Python virtuālo vidi no sava projekta direktorija ar šādu komandu:

$ avots .env / bin / aktivizēt

Selenium Python bibliotēkas instalēšana:

Selēna bibliotēka ir pieejama oficiālajā Python PyPI repozitorijā.

Selenium Python bibliotēku, izmantojot PIP 3, varat instalēt šādi:

$ pip3 instalējiet selēnu

Būtu jāinstalē Selenium Python bibliotēka.

Firefox Gecko draivera instalēšana:

Lai lejupielādētu Firefox Gecko draiveri, apmeklējiet Mozilla / geckodriver GitHub izlaidumu lapu no savas iecienītās tīmekļa pārlūkprogrammas.

Kā redzat, v0.26.0 ir jaunākā Firefox Gecko draivera versija šī rakstīšanas laikā.

Lai lejupielādētu Firefox Gecko draiveri, nedaudz ritiniet uz leju un noklikšķiniet uz Linux geckodriver darvas.gz arhīvs atkarībā no operētājsistēmas arhitektūras.

Ja izmantojat 32 bitu operētājsistēmu, noklikšķiniet uz geckodriver-v0.26.0-linux32.darva.gz saite.

Ja izmantojat 64 bitu operētājsistēmu, noklikšķiniet uz geckodriver-v0.26.0-linuxx64.darva.gz saite.

Es lejupielādēšu Firefox Gecko draivera 64 bitu versiju.

Pārlūkprogrammai vajadzētu pamudināt jūs saglabāt arhīvu. Atlasiet Saglabāt failu un noklikšķiniet uz labi.

Būtu jālejupielādē Firefox Gecko draiveris.

Firefox Gecko draiveru arhīvs ir jāielādē ~ / Lejupielādes direktorijā.

Jūs varat iegūt geckodriver-v0.26.0-linux64.darva.gz arhīvs no ~ / Lejupielādes direktoriju vadītāji / projekta direktoriju ar šādu komandu:

$ tar -xzf ~ / Lejupielādes / geckodriver-v0.26.0-linux64.darva.gz -C draiveri /

Kad Firefox Gecko draivera arhīvs ir izvilkts, jauns binārs fails geckodriver būtu jāizveido vadītāji / projekta direktoriju, kā redzat zemāk redzamajā ekrānuzņēmumā.

Darba sākšana ar selēnu, izmantojot Firefox Gecko draiveri:

Šajā sadaļā es jums parādīšu, kā iestatīt savu pirmo Selenium Python skriptu, lai pārbaudītu, vai darbojas Firefox Gecko draiveris.

Vispirms izveidojiet jaunu Python skriptu ex00.py projekta direktorijā un ierakstiet tajā šādas rindas.

no selēna importa tīmekļa draivera
no selēna.tīmekļa draiveris.bieži.atslēgu importēšana
pārlūks = tīmekļa draiveris.Firefox (izpildāmā_ceļš = "./ draiveri / geckodriver ")
pārlūku.get ('https: // www.linuxhint.com ')
print ('Virsraksts:% s'% pārlūks.nosaukums)
pārlūku.atmest ()

Kad esat pabeidzis, saglabājiet ex00.py Python skripts.

1. Un 2. Rindā tiek importēti visi nepieciešamie komponenti no selēns Python bibliotēka.

4. Rindā tiek izveidots Firefox tīmekļa draivera objekts, izmantojot tīmekļa draiveris.Firefox () metodi un glabā to a pārlūku mainīgais. The izpildāms_ceļš arguments tiek izmantots, lai tīmekļa draiverim norādītu, kur meklēt bināro Firefox Gecko draiveri. Šajā gadījumā geckodriver binārs no vadītāji / projekta direktoriju.

6. līnijā, pārlūku.gūt() metode tiek ielādēta linuxhint.com Firefox tīmekļa pārlūkprogrammā.

Kad vietne ir pabeigta, 7. rindā šeit tiek izdrukāts vietnes nosaukums, pārlūku.nosaukums īpašums tiek izmantots, lai piekļūtu vietnes nosaukumam.

8. Rinda aizver Firefox tīmekļa pārlūkprogrammu, izmantojot pārlūku.atmest () metodi.

Jūs varat palaist Python skriptu ex00.py ar šādu komandu:

$ python3 ex00.py

Selēnam vajadzētu atvērt Firefox tīmekļa pārlūku un apmeklēt linuxhint.com vietne automātiski.

Kad lapa ir ielādēta, tai vajadzētu konsolē izdrukāt vietnes nosaukumu, un tīmekļa pārlūkprogrammai automātiski jāaizveras.

Tātad, Selenium darbojas pareizi ar Firefox Gecko draiveri.

01. piemērs: Firefox palaišana režīmā bez galvas, izmantojot selēnu

Varat arī palaist Selenium ar Firefox Gecko Driver bezroku režīmā. Selenium Firefox režīmam bez galvas nav nepieciešams datorā instalēts grafiskais lietotāja interfeiss. Tātad, jūs varēsiet palaist Selenium Firefox jebkurā Linux serverī bez galvas.

Vispirms izveidojiet jaunu Python skriptu ex01.py projekta direktorijā un ierakstiet tajā sekojošās kodu rindas.

no selēna importa tīmekļa draivera
no selēna.tīmekļa draiveris.firefox.opciju importēšana
no selēna.tīmekļa draiveris.bieži.atslēgu importēšana
firefoxOptions = Opcijas ()
FirefoxIespējas.add_argument ("- bez galvas")
pārlūks = tīmekļa draiveris.Firefox (izpildāmā_ceļš = "./ draiveri / geckodriver ", options = firefoxOptions)
pārlūku.get ('https: // www.linuxhint.com ')
print ('Nosaukums:% s'% pārlūks.nosaukums)
pārlūku.atmest ()

Kad esat pabeidzis, saglabājiet ex01.py Python skripts.

1. un 3. līnija ir vienādas ar 1. un 2. līniju ex00.py Python skripts.

2. līnija importē Firefox Iespējas no selēns bibliotēka.

5. Līnija izveido objektu Firefox Options un saglabā to FirefoxIespējas mainīgais.

6. rindā tiek izmantots FirefoxIespējas.add_argument () metode, lai pievienotu -bez galvas Firefox komandrindas karodziņš uz FirefoxIespējas objekts.

8. līnijā, iespējas arguments tiek izmantots, lai nodotu FirefoxIespējas vienlaikus inicializējot Firefox tīmekļa draiveri, izmantojot tīmekļa draiveris.Firefox () metodi.

Pārējās līnijas ex01.py skripts ir tāds pats kā ex00.py.

Jūs varat palaist Python skriptu ex01.py ar šādu komandu:

$ python3 ex01.py

Kā redzat, vietnes nosaukums (linuxhint.com) tiek drukāts uz konsoles, neatverot nevienu Firefox tīmekļa pārlūkprogrammas grafisko versiju.

Kā redzat, Selenium strādā arī ar Ubuntu vidi bez galvas, kur man nav instalēta grafiskā lietotāja saskarne.

Tagad, kad jūs zināt, kā nokārtot -bez galvas Firefox komandrindas karodziņš / opcija, izmantojot Selenium Firefox Gecko draiveri, varat nodot arī citus Firefox komandrindas karodziņus / opcijas.

Visus atbalstītos Firefox komandrindas karodziņus / opcijas varat atrast komandrindas opcijās - Mozilla | MDN lapa.

02. piemērs: Lorem Ipsum ekstrahēšana, izmantojot selēnu

Šajā sadaļā es jums parādīšu, kā veikt pamata tīmekļa pārmetumus, izmantojot Selenium Firefox Gecko draiveri.

Vispirms Firefox tīmekļa pārlūkprogrammā apmeklējiet Lorem Ipsum Generator lapu. Kā redzat, lapa radīja 5 nejaušas rindkopas. Izvilksim visu ģenerēto tekstu (visus 5 punktus) no šīs lapas.

Pirms sākat iegūt informāciju no tīmekļa lapas, jums jāzina tīmekļa lapas HTML struktūra.

Izmantojot, varat viegli atrast satura HTML struktūru, kuru vēlaties iegūt Firefox izstrādātāja rīks. Atvērt Firefox izstrādātāja rīks, nospiediet peles labo pogu (RMB) lapā un noklikšķiniet uz Pārbaudīt elementu (Q).

Firefox izstrādātāja rīks būtu jāatver. Noklikšķiniet uz Pārbaudīt ikonu () kā norādīts zemāk redzamajā ekrānuzņēmumā.

Virziet kursoru virs pirmās rindkopas, kā parādīts zemāk esošajā ekrānuzņēmumā. Pēc tam nospiediet peles kreiso pogu (LMB), lai to atlasītu.

Rindkopu HTML struktūra jāparāda Pārbaudiet cilne Firefox izstrādātāja rīks. Kā redzat, ģenerētās lorēma ipsum rindkopas atrodas a iekšpusē div tagu, kuram ir id lūpas.

Lai izgūtu lorem ipsum rindkopas, izmantojot Selenium Firefox Gecko draiveri, izveidojiet jaunu Python skriptu ex02.py projekta direktorijā un ierakstiet tajā sekojošās kodu rindas.

no selēna importa tīmekļa draivera
no selēna.tīmekļa draiveris.firefox.opciju importēšana
no selēna.tīmekļa draiveris.bieži.atslēgu importēšana
firefoxOptions = Opcijas ()
FirefoxIespējas.add_argument ("- bez galvas")
pārlūks = tīmekļa draiveris.Firefox (izpildāmā_ceļš = "./ draiveri / geckodriver ", options = firefoxOptions)
pārlūku.get ('https: // www.lūpas.com / feed / html ')
lipsum = pārlūks.find_element_by_id ('lūpas')
apdruka (lūpas.teksts)
pārlūku.atmest ()

Kad esat pabeidzis, saglabājiet ex02.py Python skripts.

10. rinda ielādē lorēma ipsum ģeneratora lapu, izmantojot pārlūku.gūt() metodi.

Lorēma ipsuma saturs atrodas a div atzīmējiet ar ID lūpas. 12. rindā tiek izmantots pārlūku.find_element_by_id () metodi, lai to atlasītu no tīmekļa lapas un saglabātu lūpas mainīgais.

13. rinda uz konsoles izdrukā ģenerētā lorema ipsum saturu. Lūk, tekstu rekvizīts tiek izmantots, lai piekļūtu div elements ar id lūpas.

Tagad palaidiet Python skriptu ex02.py sekojoši:

$ python3 ex02.py

Kā redzat, selēns pareizi izvilka lorem ipsum saturu no tīmekļa lapas.

Python skripta palaišana ex02.py atkal sniegs jums citu rezultātu, kā redzat zemāk redzamajā ekrānuzņēmumā.

03. piemērs: Saraksta datu iegūšana, izmantojot selēnu

Šajā sadaļā es jums parādīšu tīmekļa metāllūžņu saraksta datu piemēru no vietnes, izmantojot Selenium Firefox Gecko draiveri bez galvas.

Vispirms apmeklējiet izlases nosaukumu ģeneratoru.informācija no tīmekļa pārlūkprogrammas Firefox. Šī vietne katru reizi, kad atkārtoti ielādējat lapu, ģenerēs 10 nejaušus nosaukumus, kā redzat zemāk redzamajā ekrānuzņēmumā. Mūsu mērķis ir iegūt šos nejaušos nosaukumus, izmantojot Selēnu bezgalības režīmā.

Lai uzzinātu saraksta HTML struktūru, jums jāatver Firefox izstrādātāja rīks. Lai to izdarītu, nospiediet peles labo pogu (RMB) lapā un noklikšķiniet uz Pārbaudīt elementu (Q).

Firefox izstrādātāja rīks būtu jāatver. Noklikšķiniet uz Pārbaudīt ikonu () kā norādīts zemāk redzamajā ekrānuzņēmumā.

Pēc tam virziet kursoru virs saraksta Nejauši nosaukumi. Saraksts ir jāizceļ, kā norādīts zemāk esošajā ekrānuzņēmumā. Pēc tam nospiediet peles kreiso pogu (LMB), lai atlasītu sarakstu.

Saraksta HTML kods ir jāizceļ Inspektors cilne Firefox izstrādātāja rīks. Šeit nejaušo nosaukumu saraksts atrodas a div elements. The div elementam ir klasē nosaukums rezultātiem. Tās iekšpusē mums ir ol elements ar klasē nosaukums nameList. Iekšpusē ol elements, katrs no nosaukumiem atrodas a li elements.

No tā mēs varam teikt, ka, lai nokļūtu li tagus, mums jāievēro div.rezultāti> ol.nameList> li

Tātad, mūsu CSS atlasītājs būs div.rezultāti ol.nameList li (vienkārši nomainiet > zīmes ar atstarpi)

Lai iegūtu šos nejaušos nosaukumus, izveidojiet jaunu Python skriptu ex03.py un tajā ierakstiet šādas kodu rindas.

no selēna importa tīmekļa draivera
no selēna.tīmekļa draiveris.firefox.opciju importēšana
no selēna.tīmekļa draiveris.bieži.atslēgu importēšana
firefoxOptions = Opcijas ()
FirefoxIespējas.add_argument ("- bez galvas")
pārlūks = tīmekļa draiveris.Firefox (izpildāmā_ceļš = "./ draiveri / geckodriver ", options = firefoxOptions)
pārlūku.get ("http: // izlases nosaukumu ģenerators.info / ")
nameList = pārlūks.find_elements_by_css_selector ('div.rezultāti ol.nameList li ')
vārdam nameList:
drukāt (nosaukums.teksts)
pārlūku.atmest ()

Kad esat pabeidzis, saglabājiet ex03.py Python skripts.

10. rindā tiek ielādēta nejaušo nosaukumu ģeneratora vietne, izmantojot pārlūku.gūt() metodi.

11. rindā vārdu saraksts tiek atlasīts, izmantojot pārlūku.find_elements_by_css_selector () metodi. Šajā metodē tiek izmantots CSS selektors div.rezultāti ol.nameList li lai atrastu vārdu sarakstu. Pēc tam vārdu saraksts tiek saglabāts mapē nameList mainīgais.

13. un 14. rindā a priekš cilpa tiek izmantota iterācijai caur nameList saraksts li elementi. Katrā atkārtošanas reizē saturs li elements ir uzdrukāts uz konsoles.

Tagad palaidiet Python skriptu ex03.py sekojoši:

$ python3 ex03.py

Kā redzat, Python skripts ex03.py ielādēja visus nejaušos vārdus no tīmekļa lapas.

Ja palaižat skriptu otro reizi, tam jāatgriež jauns izlases nosaukumu saraksts, kā redzat zemāk redzamajā ekrānuzņēmumā.

Secinājums:

Šis raksts palīdzēs jums sākt darbu ar Selenium, izmantojot Firefox tīmekļa pārlūku. Jums vajadzētu būt iespējai diezgan viegli izveidot Selenium Firefox Gecko draivera projektu un palaist pārlūkprogrammas testus, tīmekļa automatizāciju un tīmekļa nokasīšanas uzdevumus.

Instalējiet jaunāko OpenRA stratēģijas spēli Ubuntu Linux
OpenRA ir bezmaksas / bezmaksas reāllaika stratēģijas spēļu dzinējs, kas atjauno agrīnās Vestvudas spēles, piemēram, klasisko Command & Conquer: Red A...
Instalējiet jaunāko Dolphin emulatoru Gamecube un Wii operētājsistēmai Linux
Delfīnu emulators ļauj jums spēlēt izvēlētās Gamecube un Wii spēles Linux personālajos datoros (PC). Tā kā Dolphin Emulator ir brīvi pieejams un atvē...
Kā lietot GameConqueror Cheat Engine Linux
Rakstā ir sniegts ceļvedis par GameConqueror apkrāptu dzinēja izmantošanu Linux. Daudzi lietotāji, kas spēlē spēles operētājsistēmā Windows, bieži izm...