Szelén

Hogyan lehet elemet találni szöveg szerint szelénnel

Hogyan lehet elemet találni szöveg szerint szelénnel
Az elemek megkeresése és kiválasztása a weboldalról a szelén segítségével történő webes kaparás kulcsa. Az elemeket címke, azonosító, osztálynév, XPath választó, CSS választó stb. Használatával választhatja ki. a szelénben. A Selenium segítségével kiválaszthat olyan elemeket is, amelyeknek van egy konkrét szövege. Ez hasznos a linkek és gombok egyszerű kiválasztásához a weboldalról. Még akkor is, ha az oldal szerkezete megváltozik, mindaddig, amíg a weblap elem szövege változatlan marad, a választónak jól kell működnie. Ez az előnye, hogy a Seleniumban szöveget használva válasszon linkeket és gombokat.

Ebben a cikkben bemutatom, hogyan keresse meg és válasszon elemeket a weboldalakról a Selenium szövegének használatával a Selenium python könyvtár segítségével. Tehát kezdjük.

Előfeltételek:

A cikk parancsainak és példáinak kipróbálásához rendelkeznie kell a következőkkel:

  1. A számítógépre telepített Linux disztribúció (lehetőleg Ubuntu).
  2. A Python 3 telepítve van a számítógépre.
  3. A PIP 3 telepítve van a számítógépre.
  4. Piton virtualenv számítógépre telepített csomagot.
  5. A számítógépre telepített Mozilla Firefox vagy Google Chrome böngészők.
  6. Tudnia kell a Firefox Gecko illesztőprogram vagy a Chrome internetes illesztőprogram telepítését.

A 4., 5. és 6. követelmény teljesítéséhez olvassa el cikkemet Bevezetés a szelénbe a Python 3-ban.

Számos cikket talál a LinuxHint egyéb témáiról.com. Ügyeljen arra, hogy ellenőrizze ő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 szelén-text-select / alábbiak szerint:

$ mkdir -pv selenium-text-select / meghajtók

Navigáljon a szelén-text-select / projekt könyvtár az alábbiak szerint:

$ cd szelén-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 / bin / aktiválás

Telepítse a Selenium Python könyvtárat a PIP3 segítségével 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 járművezetők / a projekt könyvtárát. Cikkemben ismertettem 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 bemutatok néhány példát a weboldal elemének szöveges megkeresésére és kiválasztására a Selenium Python könyvtár segítségével.

Kezdem azzal a legegyszerűbb példával, hogy a weblap elemeit szöveg szerint válasszam ki, és válasszam ki a linkeket a weboldalról.

A facebook bejelentkezési oldalán.com, van egy linkünk Elfelejtett számla? Amint az alábbi képernyőképen látható. Válasszuk ki ezt a linket a Selenium segítségével.

Hozzon létre egy új Python szkriptet ex01.py és írja be a következő kódsorokat benne.

a szelénimport-meghajtóról
szelénből.web meghajtó.gyakori.kulcsok importálása kulcsok
szelénből.web meghajtó.gyakori.behozatal által
az időből importál
böngésző = webdriver.Chrome (végrehajtható_útvonal = "./ driverek / chromedriver ")
böngésző.get ("https: // www.Facebook.com / ")
forgotAccountLink = böngésző.find_element (Írta:.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ő objektum a chromedriver bináris a járművezetők / a projekt könyvtárát.

A 8. sor azt mondja a böngészőnek, hogy töltse be a facebook webhelyet.com.

A 10. sor megtalálja a szöveget tartalmazó linket Elfelejtett számla? Az XPath választó használatával. Ehhez az XPath választót használtam // * [text () = 'Elfelejtett fiók?'].

Az XPath választó ezzel kezdődik //, ami azt jelenti, hogy az elem bárhol lehet az oldalon. A * szimbólum arra utasítja a Szelént, hogy válasszon ki bármilyena vagy o vagy span, stb.), amely megfelel a szögletes zárójelben lévő állapotnak []. Itt a feltétel az, hogy az elem szövege megegyezik a Elfelejtett számla?

A szöveg() Az XPath függvény egy 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.

Helló Világ

A 11. sor küldi a gombot nyomja meg a Elfelejtett számla? Link.

Futtassa a Python szkriptet ex01.py a következő paranccsal:

$ python ex01.py

Amint láthatja, a webböngésző megtalálja, kiválasztja és megnyomja a gombot a Elfelejtett számla? Link.

A Elfelejtett számla? A link a böngészőt a következő oldalra viszi.

Ugyanígy könnyen megkeresheti azokat az elemeket, amelyek rendelkeznek a kívánt attribútumértékkel.

Itt a Belépés gomb egy bemenet elem, amelynek 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 benne.

a szelénimport-meghajtóról
szelénből.web meghajtó.gyakori.kulcsok importálása kulcsok
szelénből.web meghajtó.gyakori.behozatal által
az időből importál
böngésző = webdriver.Chrome (végrehajtható_útvonal = "./ driverek / chromedriver ")
böngésző.get ("https: // www.Facebook.com / ")
alvás (5)
emailInput = böngésző.find_element (Írta:.XPATH, "// input [@ id = 'email']")
passwordInput = böngésző.find_element (Írta:.XPATH, "// input [@ id = 'pass']")
loginButton = böngésző.find_element (Írta:.XPATH, "// * [@ value = 'Bejelentkezés']")
emailInput.send_keys ('[e-mail védett]')
alvás (5)
passwordInput.send_keys ('titkos átadás')
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 alkatrészt.

A 6. sor létrehoz egy Chrome-ot böngésző objektum a chromedriver bináris a járművezetők / a projekt könyvtárát.

A 8. sor azt mondja a böngészőnek, hogy töltse be a facebook webhelyet.com.

A szkript futtatása után minden olyan gyorsan történik. Szóval, használtam a alvás() funkció sokszor be ex02.py a böngészőparancsok késleltetéséhez. Így megfigyelheti, hogy minden működik.

A 11. sor megtalálja az e-mail beviteli szövegdobozt, és tárolja az elem hivatkozását az emailInput változó.

A 12. sor megtalálja az e-mail beviteli szövegdobozt, és tárolja az elem hivatkozását az emailInput változó.

A 13. sor megtalálja az attribútummal rendelkező bemeneti elemet érték nak,-nek Belépés az XPath választóval. Ehhez az XPath választót használtam // * [@ value = 'Bejelentkezés'].

Az XPath választó ezzel kezdődik //. Ez azt jelenti, hogy az elem bárhol lehet az oldalon. A * szimbólum arra utasítja a Szelént, hogy válasszon ki bármilyen címkét (bemenet vagy o vagy span, stb.), amely megfelel a szögletes zárójelben lévő állapotnak []. Itt a feltétel az elem attribútum érték egyenlő Belépés.

A 15. sor elküldi a [email védett] bemenetet az e-mail beviteli szövegmezőbe, a 16. sor pedig késlelteti a következő műveletet.

A 18. sor elküldi a bemeneti titkos jelszót a jelszó beviteli szövegmezőbe, a 19. sor pedig késlelteti a következő műveletet.

A 21. sor küldi a gombot nyomja meg a bejelentkezés gombot.

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 a 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észleges szöveg szerint:

A korábbi részben bemutattam, hogyan lehet elemeket keresni adott szöveg szerint. Ebben a részben bemutatom, hogyan lehet részleges szöveg segítségével megtalálni a weboldalak elemeit.

A példában, ex01.py, Megkerestem a link elemet, amely tartalmazza a szöveget Elfelejtett számla?. Kereshet ugyanabban a link elemben részleges szöveg, például Elfelejtett acc. Ehhez használhatja a tartalmaz () XPath függvény, a ex03.py. A többi kód megegyezik a ex01.py. Az eredmények ugyanazok lesznek.

A 10-es sorban ex03.py, a kiválasztási feltétel a tartalmazza (forrás, szöveg) XPath függvény. Ehhez a függvényhez 2 argumentum szükséges, forrás, és szöveg.

A tartalmaz () függvény ellenőrzi, hogy a szöveg a második érvben megadott részben illeszkedik a 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 ellenőrzött.

Egy másik hasznos XPath funkció, amely részleges szöveg használatával elemeket keres a weboldalról kezdődik (forrás, szöveg). Ennek a függvénynek ugyanazok az érvei vannak, mint a tartalmaz () funkciót, és ugyanúgy használják. Az egyetlen különbség az, hogy a kezdődik -vel () függvény ellenőrzi, hogy a második argumentum szöveg az első argumentum kezdő karakterlánca forrás.

Átírtam a példát ex03.py annak az elemnek a megkeresésére, amelyre a szöveg kezdődik Elfelejtett, amint a 10. sorában láthatja ex04.py. Az eredmény ugyanaz, mint a ex02 és ex03.py.

Át is írtam ex02.py úgy, hogy megkeresse azt a bemeneti elemet, amelyre a érték attribútum kezdődik Napló, amint a 13. sorban láthatja ex05.py. Az eredmény ugyanaz, mint a ex02.py.

Következtetés:

Ebben a cikkben bemutattam, hogyan lehet a Selenium Python könyvtár segítségével szövegeket keresni és kiválasztani weboldalakról. Most már képesnek kell lennie arra, hogy a Selenium Python könyvtár segítségével szövegeket vagy részleges szövegeket találjon weboldalakról.

OpenTTD vs Simutrans
Saját közlekedési szimuláció létrehozása szórakoztató, pihentető és rendkívül csábító lehet. Ezért meg kell győződnie arról, hogy a lehető legtöbb ját...
OpenTTD bemutató
Az OpenTTD az egyik legnépszerűbb üzleti szimulációs játék. Ebben a játékban létre kell hoznia egy csodálatos szállítási vállalkozást. Azonban kezdete...
SuperTuxKart Linuxhoz
A SuperTuxKart egy nagyszerű cím, amelynek célja, hogy ingyenesen hozza el a Mario Kart élményét Linux rendszerén. Elég kihívást jelentő és szórakozta...