Ebben a cikkben megmutatom, hogyan lehet megtalálni és kiválasztani a weboldalak elemeit a Selenium szöveg segítségével a Selenium python könyvtárral. Szóval, kezdjük.
Feltételek:
A cikk parancsainak és példáinak kipróbálásához a következőkre van szüksége:
- Egy Linux disztribúció (lehetőleg Ubuntu) telepítve a számítógépére.
- Python 3 telepítve a számítógépre.
- PIP 3 telepítve van a számítógépre.
- Piton virtualenv csomag telepítve van a számítógépére.
- Mozilla Firefox vagy Google Chrome webböngészők telepítve a számítógépre.
- Tudnia kell, hogyan kell telepíteni a Firefox Gecko illesztőprogramot vagy a Chrome webes illesztőprogramot.
A 4., 5. és 6. követelmény teljesítéséhez olvassa el cikkemet Bevezetés a szelénbe a Python 3 -ban .
A többi témában számos cikket talál LinuxHint.com . Feltétlenül nézze meg őket, ha segítségre van szüksége.
Projektkönyvtár beállítása:
Ha mindent rendben szeretne tartani, hozzon létre egy új projektkönyvtárat selenium-text-select/ alábbiak szerint:
$mkdir -pvselenium-text-select/sofőrök
Navigáljon a selenium-text-select/ projektkönyvtár az alábbiak szerint:
$CDselenium-text-select/
Hozzon létre egy Python virtuális környezetet a projektkönyvtárban az alábbiak szerint:
$virtualenv .venv
Aktiválja a virtuális környezetet az alábbiak szerint:
$forrás.venv/am/aktiválja
Telepítse a Selenium Python könyvtárat a PIP3 használatával az alábbiak szerint:
$ pip3 telepítse a szelént
Töltse le és telepítse az összes szükséges webes illesztőprogramot a sofőrök/ projekt könyvtára. Cikkemben elmagyaráztam a webes illesztőprogramok letöltésének és telepítésének folyamatát Bevezetés a szelénbe a Python 3 -ban .
Elemek keresése szöveg szerint:
Ebben a részben néhány példát mutatok be a weblap elemeinek szöveg szerinti megkeresésére és kiválasztására a Selenium Python könyvtár segítségével.
A legegyszerűbb példával fogom kezdeni a weblap elemeinek szöveg szerinti kiválasztását, a linkek kiválasztását a weboldalról.
A facebook.com bejelentkezési oldalán van egy link Elfelejtett fiók? Amint az alábbi képernyőképen látható. Válasszuk ki ezt a linket a szelénnel.
Hozzon létre egy új Python -szkriptet ex01.py és írja be a következő kódsorokat.
tól tőlszelénimportwebmeghajtótól tőlszelén.webmeghajtó.gyakori.kulcsok importKulcsok
tól tőlszelén.webmeghajtó.gyakori.által importÁltal
tól től idő importalvás
böngésző=webmeghajtó.Króm(futtatható_útvonal='./drivers/chromedriver')
böngésző.kap('https://www.facebook.com/')
forgotAccountLink=böngésző.find_element(Által.XPATH, '
//*[text () = 'Elfelejtett fiók?'] ')
forgotAccountLink.send_keys(Kulcsok.BELÉP)
Ha elkészült, mentse a ex01.py Python szkript.
Az 1-4. Sor importálja az összes szükséges összetevőt a Python programba.
A 6. sor létrehoz egy Chrome -ot böngésző objektumot a chromedriver bináris a sofőrök/ projekt könyvtára.
A 8. sor azt mondja a böngészőnek, hogy töltse be a facebook.com webhelyet.
A 10. sor megtalálja a szöveget tartalmazó linket Elfelejtett fiók? Az XPath választó használata. Ehhez az XPath választót használtam //*[text () = ’Elfelejtett fiók?’] .
Az XPath választógomb a következővel kezdődik //, ami azt jelenti, hogy az elem bárhol lehet az oldalon. Az * szimbólum azt mondja a szelénnek, hogy válasszon ki egy címkét ( nak nek vagy o vagy span, stb.), amely megfelel a szögletes zárójelben lévő feltételeknek [] . Itt a feltétel az, hogy az elem szövege egyenlő a Elfelejtett fiók?
Az szöveg() Az XPath függvény az elem szövegének lekérésére szolgál.
Például, szöveg() visszatér Helló Világ ha a következő HTML elemet választja ki.
< nak nek href='http://dummysite.com'>Helló Világ</ nak nek >A 11. sor elküldi a nyomja meg a gombot Elfelejtett fiók? Link.
Futtassa a Python szkriptet ex01.py a következő paranccsal:
$ python ex01.py
Amint láthatja, a webböngésző megkeresi, kiválasztja és megnyomja a gombot gombot a Elfelejtett fiók? Link.
Az Elfelejtett fiók? A link a következő oldalra viszi a böngészőt.
Hasonló módon könnyen kereshet olyan elemeket, amelyek rendelkeznek a kívánt attribútumértékkel.
Itt, a Belépés gomb egy bemenet elem, amely rendelkezik a érték tulajdonság Belépés . Nézzük meg, hogyan válasszuk ki ezt az elemet szöveg szerint.
Hozzon létre egy új Python -szkriptet ex02.py és írja be a következő kódsorokat.
tól tőlszelénimportwebmeghajtótól tőlszelén.webmeghajtó.gyakori.kulcsok importKulcsok
tól tőlszelén.webmeghajtó.gyakori.által importÁltal
tól től idő importalvás
böngésző=webmeghajtó.Króm(futtatható_útvonal='./drivers/chromedriver')
böngésző.kap('https://www.facebook.com/')
alvás(5)
emailInput=böngésző.find_element(Által.XPATH, '// input [@id =' email ']')
passwordInput=böngésző.find_element(Által.XPATH, '// input [@id =' pass ']')
loginButton=böngésző.find_element(Által.XPATH, '//*[@value =' Bejelentkezés ']')
emailInput.send_keys('[email protected]')
alvás(5)
passwordInput.send_keys('titkos belépő')
alvás(5)
loginButton.send_keys(Kulcsok.BELÉP)
Ha elkészült, mentse a ex02.py Python szkript.
Az 1-4. Sor importálja az összes szükséges összetevőt.
A 6. sor létrehoz egy Chrome -ot böngésző objektumot a chromedriver bináris a sofőrök/ projekt könyvtára.
A 8. sor azt mondja a böngészőnek, hogy töltse be a facebook.com webhelyet.
A forgatókönyv futtatása után minden olyan gyorsan történik. Szóval, használtam a alvás() sokszor működnek benne ex02.py a böngészőparancsok késleltetésére. Így megfigyelheti, hogyan működik minden.
A 11. sor megtalálja az e -mail beviteli szövegmezőt, és tárolja az elem hivatkozását a emailInput változó.
A 12. sor megtalálja az e -mail beviteli szövegmezőt, és tárolja az elem hivatkozását a emailInput változó.
A 13. sor megtalálja az attribútummal rendelkező bemeneti elemet érték nak,-nek Belépés XPath választó segítségével. Ehhez az XPath választót használtam //*[@value = ’Bejelentkezés’] .
Az XPath választógomb a következővel kezdődik // . Ez azt jelenti, hogy az elem bárhol lehet az oldalon. Az * szimbólum azt mondja a szelénnek, hogy válasszon ki egy címkét ( bemenet vagy o vagy span, stb.), amely megfelel a szögletes zárójelben lévő feltételeknek [] . Itt a feltétel az elem attribútum érték egyenlő Belépés .
A 15. sor a bemenetet küldi[e -mail védett]az e -mail beviteli szövegmezőbe, és a 16. sor késlelteti a következő műveletet.
A 18. sor elküldi a titkos bemenetet a jelszóbeviteli szövegmezőbe, a 19. sor pedig késlelteti a következő műveletet.
A 21. sor elküldi a nyomja meg a gombot a bejelentkezési gombra.
Futtassa a ex02.py Python szkript a következő paranccsal:
$ python3 ex02.py
Amint láthatja, az e -mail és a jelszó szövegdobozok tele vannak dummy értékeinkkel, és a Belépés gombot megnyomják.
Ezután az oldal a következő oldalra navigál.
Elemek keresése részszöveg alapján:
Az előző részben megmutattam, hogyan találhat meg elemeket adott szöveg alapján. Ebben a szakaszban megmutatom, hogyan találhat meg elemeket weboldalakról részszöveg használatával.
A példában ex01.py , Megkerestem a linket, amely tartalmazza a szöveget Elfelejtett fiók? . Ugyanazon hivatkozási elemben kereshet részszöveget, például Elfelejtett acc . Ehhez használhatja a tartalmaz () XPath függvény, a 10. sorban látható módon ex03.py . A többi kód ugyanaz, mint a ex01.py . Az eredmények ugyanazok lesznek.
A 10. sorban ex03.py , a kiválasztási feltétel a tartalmaz (forrás, szöveg) XPath funkció. Ez a függvény 2 argumentumot tartalmaz, forrás, és szöveg .
Az tartalmaz () funkció ellenőrzi, hogy a szöveg a második érvben megadott részben megfelel az forrás érték az első argumentumban.
A forrás lehet az elem szövege ( szöveg() ) vagy az elem attribútumértékét ( @attr_name ).
Ban ben ex03.py , az elem szövege be van jelölve.
Egy másik hasznos XPath funkció, amely részleges szöveg használatával megkeresi a weboldal elemeit kezdődik (forrás, szöveg) . Ennek a függvénynek ugyanazok az érvei, mint a tartalmaz () funkciót és ugyanúgy használják. Az egyetlen különbség az, hogy a (-vel kezdődik) függvény ellenőrzi, hogy a második argumentum szöveg az első argumentum kezdő karaktere forrás .
Átírtam a példát ex03.py megkeresni azt az elemet, amellyel a szöveg kezdődik Elfelejtett, amint azt a 10. sorban láthatja ex04.py . Az eredmény ugyanaz, mint a ex02 és ex03.py .
Én is átírtam ex02.py így megkeresi azt a bemeneti elemet, amelyhez a érték attribútum azzal kezdődik Napló, mint a 13. sorában látható ex05.py . Az eredmény ugyanaz, mint a ex02.py .
Következtetés:
Ebben a cikkben a Selenium Python könyvtárral mutattam meg, hogyan lehet szövegesen megkeresni és kiválasztani a weboldalak elemeit. Most a Selenium Python könyvtárral meg kell találnia a weboldalak elemeit meghatározott szöveg vagy részszöveg alapján.