A Mozilla Firefox webböngésző Seleniumból történő vezérléséhez a Gecko webillesztőt kell használnia.
Ebben a cikkben bemutatom, hogyan állíthatja be a Selen böngészőtesztek futtatásához, webautomatizáláshoz, webes másolási feladatokhoz a Mozilla Firefox böngészővel. Tehát kezdjük.
Előfeltételek:
A cikk parancsainak és példáinak kipróbálásához rendelkeznie kell,
1) Linux disztribúció (lehetőleg Ubuntu) telepítve a számítógépére.
2) A Python 3 telepítve van a számítógépére.
3) A PIP 3 telepítve van a számítógépére.
4) A Mozilla Firefox telepítve van a számítógépre.
Számos cikket találhat ezekről a témákról a LinuxHint-en.com. Ügyeljen arra, hogy ellenőrizze őket, ha segítségre van szüksége.
A Python 3 virtuális környezet előkészítése a projekthez:
A Python virtuális környezet egy elszigetelt Python projektkönyvtár létrehozására szolgál. A PIP használatával telepített Python modulokat csak a projektkönyvtárba telepítik, nem globálisan.
Piton virtualenv modul a Python virtuális környezetek kezelésére szolgál.
Telepítheti a Python-t virtualenv modul globálisan a PIP 3 használatával, az alábbiak szerint:
$ sudo pip3 telepítse a virtualenv-t
Piton virtualenv telepíteni kell.
Hozzon létre egy projekt könyvtárat szelén-firefox / a jelenlegi munkakönyvtárban az alábbiak szerint:
$ mkdir -pv selenium-firefox / meghajtók
Navigáljon az újonnan létrehozott projektkönyvtárhoz szelén-firefox / alábbiak szerint:
$ cd szelén-firefox /
Hozzon létre egy Python virtuális környezetet a projektkönyvtárában a következő paranccsal:
$ virtualenv .venv
A Python virtuális környezetet a projekt könyvtárában kell létrehozni.
Aktiválja a Python virtuális környezetet a projektkönyvtárból a következő paranccsal:
$ forrás .env / bin / activ
A Selenium Python könyvtár telepítése:
A szelén könyvtár a hivatalos Python PyPI adattárban érhető el.
A Selenium Python könyvtárat a PIP 3 segítségével az alábbiak szerint telepítheti:
$ pip3 telepítse a szelént
A Selenium Python könyvtárat telepíteni kell.
A Firefox Gecko illesztőprogram telepítése:
A Firefox Gecko illesztőprogram letöltéséhez látogasson el a mozilla / geckodriver GitHub kiadási oldalára a kedvenc webböngészőjéből.
Mint láthatja, v0.26.A 0 a Firefox Gecko Driver legújabb verziója az írás idején.
A Firefox Gecko illesztőprogram letöltéséhez görgessen egy kicsit lefelé, és kattintson a Linux geckodriver tar-ra.gz archívum az operációs rendszer architektúrájától függően.
Ha 32 bites operációs rendszert használ, kattintson a gombra geckodriver-v0.26.0-linux32.kátrány.gz link.
Ha 64 bites operációs rendszert használ, kattintson a gombra geckodriver-v0.26.0-linuxx64.kátrány.gz link.
Letöltöm a Firefox Gecko illesztőprogram 64 bites verzióját.
Böngészője kéri, hogy mentse az archívumot. Válassza a lehetőséget Fájl mentése és kattintson a gombra rendben.
Töltse le a Firefox Gecko illesztőprogramot.
A Firefox Gecko illesztőprogram archívumát a ~ / Letöltések Könyvtár.
Kivonhatja a geckodriver-v0.26.0-linux64.kátrány.gz archívum a ~ / Letöltések könyvtárba a járművezetők / a projekt könyvtárát a következő paranccsal:
$ tar -xzf ~ / Letöltések / geckodriver-v0.26.0-linux64.kátrány.gz -C illesztőprogramok /
Miután kibontotta a Firefox Gecko Driver archívumát, új bináris fájl geckodriver kell létrehozni a járművezetők / a projekt könyvtárát, amint az az alábbi képernyőképen látható.
A szelén használatának megkezdése a Firefox Gecko illesztőprogram használatával:
Ebben a részben bemutatom, hogyan állíthatja be első Selenium Python szkriptjét annak tesztelésére, hogy a Firefox Gecko illesztőprogram működik-e.
Először hozzon létre egy új Python szkriptet ex00.py a projekt könyvtárában, és írja be a következő sorokat.
a szelénimport-meghajtórólszelénből.web meghajtó.gyakori.kulcsok importálása kulcsok
böngésző = webdriver.Firefox (végrehajtható_útvonal = "./ drivers / geckodriver ")
böngésző.get ('https: // www.linuxhint.com ')
print ('Cím:% s'% böngésző.cím)
böngésző.Kilépés()
Ha végzett, mentse ex00.py Python szkript.
Az 1. És 2. Sor importálja az összes szükséges összetevőt a szelén Python könyvtár.
A 4. sor egy Firefox webes illesztőobjektumot hoz létre a web meghajtó.Firefox () módszer és tárolja a böngésző változó. A végrehajtható_útvonal argumentum segítségével megadhatja a webillesztőprogramnak, hogy hol keresse meg a Firefox Gecko illesztőprogram bináris fájlját. Ebben az esetben a geckodriver bináris a járművezetők / a projekt könyvtárát.
A 6. vonalon, böngésző.kap() módszer feltöltődik linuxhint.com Firefox böngészőben.
Miután a weboldal befejezte a betöltést, a 7. sor itt nyomtatja ki a weboldal címét, böngésző.cím tulajdonság a weboldal címének elérésére szolgál.
A 8. sor bezárja a Firefox böngészőt a böngésző.Kilépés() módszer.
Futtathatja a Python szkriptet ex00.py a következő paranccsal:
$ python3 ex00.py
A Seleniumnak meg kell nyitnia egy Firefox böngészőt, és fel kell keresnie a linuxhint oldalt.com weboldal automatikusan.
Amint az oldal betöltődik, ki kell nyomtatnia a webhely címét a konzolra, és a webböngésző automatikusan bezárul.
Tehát a Selenium megfelelően működik a Firefox Gecko illesztőprogrammal.
01. példa: A Firefox futtatása fej nélküli módban szelén használatával
Futtathatja a Seleniumot a Firefox Gecko Driver programmal is fej nélküli módban. A Selenium Firefox fej nélküli módhoz nincs szükség grafikus felhasználói felületre a számítógépre. Tehát a Selenium Firefox futtatását bármelyik fejetlen Linux szerveren elvégezheti.
Először hozzon létre egy új Python szkriptet ex01.py a projektkönyvtárban, és írja be a következő kódsorokat.
a szelénimport-meghajtórólszelénből.web meghajtó.firefox.opciók importálása Beállítások
szelénből.web meghajtó.gyakori.kulcsok importálása kulcsok
firefoxOptions = Opciók ()
firefoxOptions.add_argument ("- fejetlen")
böngésző = webdriver.Firefox (végrehajtható_útvonal = "./ drivers / geckodriver ", options = firefoxOptions)
böngésző.get ('https: // www.linuxhint.com ')
print ('Cím:% s'% böngésző.cím)
böngésző.Kilépés()
Ha elkészült, mentse a ex01.py Python szkript.
Az 1. és a 3. sor megegyezik az 1. és a 2. vonallal ex00.py Python szkript.
A 2. sor importálja a Firefoxot Opciók tól szelén könyvtár.
Az 5. sor létrehoz egy Firefox Options objektumot, és eltárolja azt a firefoxOptions változó.
A 6. sor a firefoxOptions.add_argument () metódus a -fejetlen Firefox parancssori jelző a firefoxOptions tárgy.
A 8. vonalon, opciók argumentumot használjuk a firefoxOptions miközben inicializálja a Firefox web illesztőprogramot a web meghajtó.Firefox () módszer.
A többi sor a ex01.py szkript megegyezik a ex00.py.
Futtathatja a Python szkriptet ex01.py a következő paranccsal:
$ python3 ex01.py
Mint látható, a weboldal címe (linuxhint.com) a konzolra van nyomtatva anélkül, hogy megnyitná a Firefox webböngésző grafikus változatát.
Amint láthatja, a Selenium egy olyan fejetlen Ubuntu környezeten is dolgozik, ahol nincs grafikus felhasználói felület telepítve.
Most, hogy tudja, hogyan adja át a -fejetlen A Firefox parancssori jelzője / opciója a Selenium Firefox Gecko illesztőprogram használatával bármely más Firefox parancssori jelzőt / beállítást is átadhat.
Az összes támogatott Firefox parancssori jelzőt / beállítást megtalálhatja a Parancssor - Mozilla | MDN oldal.
02. példa: Lorem Ipsum kivonása szelén alkalmazásával
Ebben a részben bemutatom, hogyan kell elvégezni az alapvető webes selejtezést a Selenium Firefox Gecko illesztőprogram használatával.
Először keresse fel a Lorem Ipsum Generator oldalt a Firefox böngészőből. Mint látható, az oldal 5 véletlenszerű bekezdést generált. Bontsuk ki az összes létrehozott szöveget (mind az 5 bekezdést) erről az oldalról.
Mielőtt elkezdené kinyerni az információkat egy weboldalról, ismernie kell a weboldal tartalmának HTML felépítését.
A. Segítségével könnyen megtalálhatja a kibontani kívánt tartalom HTML-szerkezetét Firefox fejlesztői eszköz. Kinyitni Firefox fejlesztői eszköz, nyomja meg a jobb egérgombot (RMB) az oldalon, és kattintson a gombra Ellenőrizze az elemet (Q).
Firefox fejlesztői eszköz meg kell nyitni. Kattintson a Ellenőrzés ikon () az alábbi képernyőképen jelölt módon.
Vigye az egérmutatót az első bekezdés fölé, ahogy az alábbi képernyőképen látható. Ezután nyomja meg a bal egérgombot (LMB) a kiválasztásához.
A bekezdések HTML struktúráját meg kell jeleníteni a Ellenőrizze fül a Firefox fejlesztői eszköz. Amint láthatja, a generált lorem ipsum bekezdések az a belsejében vannak div címke, amely rendelkezik a id ajkak.
A lorem ipsum bekezdések kivonásához a Selenium Firefox Gecko Driver használatával hozzon létre egy új Python parancsfájlt ex02.py a projektkönyvtárban, és írja be a következő kódsorokat.
a szelénimport-meghajtórólszelénből.web meghajtó.firefox.opciók importálása Beállítások
szelénből.web meghajtó.gyakori.kulcsok importálása kulcsok
firefoxOptions = Opciók ()
firefoxOptions.add_argument ("- fejetlen")
böngésző = webdriver.Firefox (végrehajtható_útvonal = "./ drivers / geckodriver ", options = firefoxOptions)
böngésző.get ('https: // www.ajkak.com / feed / html ')
lipsum = böngésző.find_element_by_id ('lipsum')
nyomtatás (lipsum.szöveg)
böngésző.Kilépés()
Ha elkészült, mentse a ex02.py Python szkript.
A 10. sor betölti a lorem ipsum generátor oldalát a böngésző.kap() módszer.
A lorem ipsum tartalma a div címke az azonosítóval ajkak. A 12. sor a böngésző.find_element_by_id () módszerrel válassza ki a weboldalról, és tárolja a ajkak változó.
A 13. sor kinyomtatja a létrehozott lorem ipsum tartalmat a konzolon. Itt a szöveg tulajdonságot használjuk a div elem az azonosítóval ajkak.
Most futtassa a Python szkriptet ex02.py alábbiak szerint:
$ python3 ex02.py
Mint látható, a szelén helyesen vonta ki a lorem ipsum tartalmát a weboldalról.
A Python szkript futtatása ex02.py ismét más eredményt ad, amint az az alábbi képernyőképen látható.
03. példa: Listaadatok kivonása szelén segítségével
Ebben a részben bemutatok egy példát a weboldal selejtezési listájának adatairól a Selenium Firefox Gecko illesztőprogram segítségével fej nélküli módban.
Először keresse fel a véletlenszerű név-generátort.információk a Firefox böngészőből. Ez a webhely 10 véletlenszerű nevet generál minden alkalommal, amikor újratölti az oldalt, amint az az alábbi képernyőképen látható. Célunk, hogy ezeket a véletlenszerű neveket szelén nélkül fejetlen módban nyerjük ki.
A lista HTML felépítésének megismeréséhez meg kell nyitnia a Firefox fejlesztői eszköz. Ehhez nyomja meg az egér jobb gombját (RMB) az oldalon, és kattintson a gombra Ellenőrizze az elemet (Q).
Firefox fejlesztői eszköz meg kell nyitni. Kattintson a Ellenőrzés ikon () az alábbi képernyőképen jelölt módon.
Ezután mutasson az egérrel a listára Véletlen nevek. A listát ki kell emelni az alábbi képernyőképen jelölt módon. Ezután nyomja meg az egér bal gombját (LMB) a lista kiválasztásához.
A lista HTML kódját ki kell emelni a Ellenőr fül a Firefox fejlesztői eszköz. Itt a Véletlenszerű nevek listája a div elem. A div elem rendelkezik a osztály név eredmények. Belül van egy ol elem a osztály név névlista. Benne ol elem, a nevek mindegyike a li elem.
Ebből azt mondhatjuk, hogy eljutunk a li címkéket, követnünk kell div.eredmények> ol.névLista> li
Tehát, a CSS választónk az lesz div.eredmények ol.névLista li (csak cserélje ki a > táblák fehér szóközzel)
A véletlenszerű nevek kibontásához hozzon létre egy új Python parancsfájlt ex03.py és írja be a következő kódsorokat benne.
a szelénimport-meghajtórólszelénből.web meghajtó.firefox.opciók importálása Beállítások
szelénből.web meghajtó.gyakori.kulcsok importálása kulcsok
firefoxOptions = Opciók ()
firefoxOptions.add_argument ("- fejetlen")
böngésző = webdriver.Firefox (végrehajtható_útvonal = "./ drivers / geckodriver ", options = firefoxOptions)
böngésző.get ("http: // random-name-generator.info / ")
nameList = böngésző.find_elements_by_css_selector ('div.eredmények ol.nameList li ')
a névhez a névlistában:
nyomtatott név.szöveg)
böngésző.Kilépés()
Ha elkészült, mentse a ex03.py Python szkript.
A 10. sor betölti a véletlenszerű névgenerátor webhelyét a böngésző.kap() módszer.
A 11. sor a név használatával választja ki a névlistát böngésző.find_elements_by_css_selector () módszer. Ez a módszer a CSS választót használja div.eredmények ol.névLista li hogy megtalálja a névlistát. Ezután a névlista a névlista változó.
A 13. és a 14. sorban a mert ciklust használjuk a névlista listája li elemek. Minden iterációban a li elem a konzolra van nyomtatva.
Most futtassa a Python szkriptet ex03.py alábbiak szerint:
$ python3 ex03.py
Mint látható, a Python szkript ex03.py lekérte az összes véletlenszerű nevet a weboldalról.
Ha másodszor futtatja a szkriptet, akkor a véletlenszerű nevek új listáját adja vissza, amint az az alábbi képernyőképen látható.
Következtetés:
Ez a cikk segíthet a Firefox webböngésző használatának megkezdésében. Elég könnyen fel kell tudnia állítani egy Selenium Firefox Gecko illesztőprogram-projektet, és futtathatja a böngésző tesztjeit, a web-automatizálást és a web-kaparási feladatokat.