Kā atrast elementu pēc teksta, izmantojot selēnu

How Find Element Text With Selenium



Elementu atrašana un atlase no tīmekļa lapas ir atslēga tīmekļa nokasīšanai ar selēnu. Selenā varat atlasīt elementus, izmantojot taga nosaukumu, ID, klases nosaukumu, XPath atlasītāju, CSS atlasītāju utt. Izmantojot selēnu, varat arī atlasīt elementus, kuriem ir noteikts teksts. Tas ir noderīgi, lai viegli atlasītu saites un pogas no tīmekļa lapas. Pat ja lapas struktūra mainās, kamēr tīmekļa lapas elementa teksts paliek nemainīgs, atlasītājam vajadzētu darboties lieliski. Šī ir priekšrocība, atlasot saites un pogas, izmantojot selēna tekstu.

Šajā rakstā es jums parādīšu, kā atrast un atlasīt elementus no tīmekļa lapām, izmantojot Selēna tekstu ar Selēna python bibliotēku. Tātad, sāksim.







Priekšnosacījumi:

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



  1. Jūsu datorā instalēta Linux izplatīšana (vēlams Ubuntu).
  2. Python 3 ir instalēts jūsu datorā.
  3. PIP 3 ir instalēts jūsu datorā.
  4. Python virtualenv pakotne, kas instalēta jūsu datorā.
  5. Jūsu datorā ir instalētas pārlūkprogrammas Mozilla Firefox vai Google Chrome.
  6. Jāzina, kā instalēt Firefox Gecko draiveri vai Chrome tīmekļa draiveri.

Lai izpildītu 4., 5. un 6. prasības, izlasiet manu rakstu Ievads selēnā programmā Python 3 .



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





Projekta direktorija iestatīšana:

Lai viss būtu sakārtots, izveidojiet jaunu projektu direktoriju selēns-teksta atlase/ sekojoši:

$mkdir -pvselēns-teksta atlase/šoferi



Dodieties uz selēns-teksta atlase/ projekta direktoriju šādi:

$CDselēns-teksta atlase/

Projekta direktorijā izveidojiet Python virtuālo vidi šādi:

$virtualenv .venv

Aktivizējiet virtuālo vidi šādi:

$avots.venv/esmu/aktivizēt

Instalējiet Selenium Python bibliotēku, izmantojot PIP3 šādi:

$ pip3 instalēt selēnu

Lejupielādējiet un instalējiet visu nepieciešamo tīmekļa draiveri šoferi/ projekta direktoriju. Savā rakstā esmu izskaidrojis tīmekļa draiveru lejupielādes un instalēšanas procesu Ievads selēnā programmā Python 3 .

Elementu atrašana pēc teksta:

Šajā sadaļā es parādīšu dažus piemērus, kā atrast un atlasīt tīmekļa lapas elementus pēc teksta, izmantojot Selenium Python bibliotēku.

Sākšu ar vienkāršāko piemēru, kā atlasīt tīmekļa lapas elementus pēc teksta, atlasot saites no tīmekļa lapas.

Facebook.com pieteikšanās lapā mums ir saite Aizmirsāt kontu? Kā redzat zemāk esošajā ekrānuzņēmumā. Atlasīsim šo saiti ar selēnu.

Izveidojiet jaunu Python skriptu ex01.py un ierakstiet tajā šādas kodu rindas.

noselēnsimportēttīmekļa draiveris
noselēns.tīmekļa draiveris.bieži.atslēgas importētAtslēgas
noselēns.tīmekļa draiveris.bieži.pēc importētAutors
no laiks importētGulēt
pārlūkprogrammā=tīmekļa draiveris.Chrome(izpildāms_ceļš='./drivers/chromedriver')
pārlūkprogrammā.gūt('https://www.facebook.com/')
forgotAccountLink=pārlūkprogrammā.atrast_elementu(Autors.XPATH, '
//*[text () = 'Aizmirsāt kontu?'] '
)
forgotAccountLink.send_keys(Atslēgas.ENTER)

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

1.-4. Rindiņa importē visas nepieciešamās sastāvdaļas Python programmā.

6. rindā tiek izveidots pārlūks Chrome pārlūkprogrammā objekts, izmantojot hromodriveris binārs no šoferi/ projekta direktoriju.

8. rindiņa liek pārlūkam ielādēt vietni facebook.com.

10. rindā atrodama saite ar tekstu Aizmirsāt kontu? Izmantojot XPath selektoru. Šim nolūkam esmu izmantojis XPath selektoru //*[text () = ‘Aizmirsāt kontu?’] .

XPath selektors sākas ar //, tas nozīmē, ka elements var atrasties jebkurā vietā lapā. The * simbols liek Selēnam izvēlēties jebkuru tagu ( uz vai lpp vai laidums, utt.), kas atbilst nosacījumam kvadrātiekavās [] . Šeit nosacījums ir, ka elementa teksts ir vienāds ar Aizmirsāt kontu?

The teksts () Funkcija XPath tiek izmantota, lai iegūtu elementa tekstu.

Piemēram, teksts () atgriežas Sveika pasaule ja tas izvēlas šādu HTML elementu.

< uz href='http://dummysite.com'>Sveika pasaule</ uz >

11. rinda nosūta nospiediet taustiņu, lai Aizmirsāt kontu? Saite.

Palaidiet Python skriptu ex01.py ar šādu komandu:

$ python ex01.py

Kā redzat, tīmekļa pārlūkprogramma atrod, izvēlas un nospiež taustiņu uz Aizmirsāt kontu? Saite.

The Aizmirsāt kontu? Saite novirza pārlūkprogrammu uz nākamo lapu.

Tādā pašā veidā jūs varat viegli meklēt elementus, kuriem ir vēlamā atribūta vērtība.

Lūk, Pieslēgties poga ir ievadi elements, kuram ir vērtību atribūts Pieslēgties . Apskatīsim, kā atlasīt šo elementu pēc teksta.

Izveidojiet jaunu Python skriptu ex02.py un ierakstiet tajā šādas kodu rindas.

noselēnsimportēttīmekļa draiveris
noselēns.tīmekļa draiveris.bieži.atslēgas importētAtslēgas
noselēns.tīmekļa draiveris.bieži.pēc importētAutors
no laiks importētGulēt
pārlūkprogrammā=tīmekļa draiveris.Chrome(izpildāms_ceļš='./drivers/chromedriver')
pārlūkprogrammā.gūt('https://www.facebook.com/')
Gulēt(5)
emailInput=pārlūkprogrammā.atrast_elementu(Autors.XPATH, '// ievade [@id =' email ']')
passwordInput=pārlūkprogrammā.atrast_elementu(Autors.XPATH, '// ievade [@id =' pass ']')
loginButton=pārlūkprogrammā.atrast_elementu(Autors.XPATH, '//*[@value =' Pieteikties ']')
emailInput.send_keys('[aizsargāts ar e -pastu]')
Gulēt(5)
passwordInput.send_keys('slepenā caurlaide')
Gulēt(5)
loginButton.send_keys(Atslēgas.ENTER)

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

1.-4. Rindā tiek importētas visas nepieciešamās sastāvdaļas.

6. rindā tiek izveidots pārlūks Chrome pārlūkprogrammā objekts, izmantojot hromodriveris binārs no šoferi/ projekta direktoriju.

8. rindiņa liek pārlūkam ielādēt vietni facebook.com.

Viss notiek tik ātri, kad palaižat skriptu. Tātad, esmu izmantojis Gulēt() darbojas daudzas reizes ex02.py pārlūkprogrammas komandu aizkavēšanai. Tādā veidā jūs varat novērot, kā viss darbojas.

11. rindiņa atrod e -pasta ievades tekstlodziņu un saglabā elementa atsauci emailInput mainīgais.

12. rindiņa atrod e -pasta ievades tekstlodziņu un saglabā elementa atsauci emailInput mainīgais.

13. rindā tiek atrasts ievades elements, kuram ir atribūts vērtību no Pieslēgties izmantojot XPath selektoru. Šim nolūkam esmu izmantojis XPath selektoru //*[@value = ’Pieteikties’] .

XPath selektors sākas ar // . Tas nozīmē, ka elements var atrasties jebkurā vietā lapā. The * simbols liek Selēnam izvēlēties jebkuru tagu ( ievadi vai lpp vai laidums, utt.), kas atbilst nosacījumam kvadrātiekavās [] . Šeit nosacījums ir elementa atribūts vērtību ir vienāds ar Pieslēgties .

15. rinda nosūta ievadīto informāciju[e -pasts aizsargāts]uz e -pasta ievades teksta lodziņu, un 16. rinda aizkavē nākamo darbību.

18. rinda nosūta ievades slepeno piekļuvi paroles ievades tekstlodziņam, un 19. rinda aizkavē nākamo darbību.

21. rinda nosūta nospiediet taustiņu līdz pieteikšanās pogai.

Palaidiet ex02.py Python skripts ar šādu komandu:

$ python3 ex02.py

Kā redzat, e -pasta un paroles tekstlodziņi ir aizpildīti ar mūsu fiktīvajām vērtībām un Pieslēgties poga ir nospiesta.

Pēc tam lapa pāriet uz nākamo lapu.

Elementu atrašana pēc daļēja teksta:

Iepriekšējā sadaļā es jums parādīju, kā atrast elementus pēc konkrēta teksta. Šajā sadaļā es parādīšu, kā atrast elementus no tīmekļa lapām, izmantojot daļēju tekstu.

Piemērā ex01.py , Esmu meklējis saites elementu, kurā ir teksts Aizmirsāt kontu? . Jūs varat meklēt to pašu saites elementu, izmantojot daļēju tekstu, piemēram, Aizmirsts acc . Lai to izdarītu, varat izmantot satur () XPath funkcija, kā parādīts 10. rindā ex03.py . Pārējie kodi ir tādi paši kā ex01.py . Rezultāti būs tādi paši.

10. rindā ex03.py , izmantotais atlases nosacījums satur (avots, teksts) XPath funkcija. Šai funkcijai ir divi argumenti, avots, un teksts .

The satur () funkcija pārbauda, ​​vai teksts otrajā argumentā sniegtā informācija daļēji atbilst avots vērtība pirmajā argumentā.

Avots var būt elementa teksts ( teksts () ) vai elementa atribūta vērtību ( @attr_name ).

In ex03.py , tiek pārbaudīts elementa teksts.

Vēl viena noderīga XPath funkcija, lai atrastu elementus no tīmekļa lapas, izmantojot daļēju tekstu, ir sākas ar (avots, teksts) . Šai funkcijai ir tādi paši argumenti kā satur () funkcija un tiek izmantota tāpat. Vienīgā atšķirība ir tā, ka sākas ar () funkcija pārbauda, ​​vai otrais arguments teksts ir pirmā argumenta sākuma virkne avots .

Esmu pārrakstījis piemēru ex03.py lai meklētu elementu, ar kuru sākas teksts Aizmirsts, kā redzams 10. rindā ex04.py . Rezultāts ir tāds pats kā ex02 un ex03.py .

Esmu arī pārrakstījis ex02.py lai tas meklētu ievades elementu, kuram vērtību atribūts sākas ar Žurnāls, kā redzams 13. rindā ex05.py . Rezultāts ir tāds pats kā ex02.py .

Secinājums:

Šajā rakstā es jums parādīju, kā atrast un atlasīt tīmekļa lapu elementus pēc teksta, izmantojot Selenium Python bibliotēku. Tagad jums vajadzētu būt iespējai atrast elementus no tīmekļa lapām pēc īpaša teksta vai daļēja teksta, izmantojot Selenium Python bibliotēku.