Selenium

Kā uzņemt ekrānuzņēmumu ar selēnu

Kā uzņemt ekrānuzņēmumu ar selēnu
Selēns ir lielisks rīks pārlūkprogrammas testēšanai, tīmekļa automatizēšanai un tīmekļa nokasīšanai. Varat arī izmantot Selenium, lai uzņemtu savas vietnes ekrānuzņēmumus. Tas ir ļoti svarīgi, lai pārbaudītu jūsu vietnes lietotāja saskarni (UI) dažādās tīmekļa pārlūkprogrammās.

Dažādas tīmekļa pārlūkprogrammas tīmekļa lapu renderēšanai izmanto dažādus renderēšanas dzinējus. Tātad tas pats priekšējās saskarnes kods var netikt atveidots vienādi visās tīmekļa pārlūkprogrammās. Lai novērstu šo problēmu, jums, iespējams, būs jāpievieno daži pārlūkprogrammai īpaši priekšgala kodi savā vietnē. Tomēr tas nav vienīgais sarežģītais elements, izstrādājot vietni, kas ir saderīga ar dažādām pārlūkprogrammām un ierīcēm. Manuāli pārbaudīt, kā vietne izskatās katrā jūsu atlasītajā pārlūkprogrammā, var būt laikietilpīgi. Jums būs jāatver visas atlasītās tīmekļa pārlūkprogrammas, jāapmeklē vietne, jāgaida lapas ielāde un jāsalīdzina renderētās lapas savā starpā. Lai ietaupītu laiku, varat izmantot Selenium ekrānuzņēmuma funkciju, lai katrā no jūsu atlasītajām pārlūkprogrammām automātiski uzņemtu savas vietnes ekrānuzņēmumus un pats salīdzinātu attēlus. Tas ir daudz ātrāk nekā manuālā metode. Šis raksts parādīs, kā uzņemt pārlūka logu ekrānuzņēmumus, izmantojot Selenium.

Priekšnoteikumi

Lai izmēģinātu šajā rakstā aplūkotās komandas un piemērus, jums 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) Python pakete virtualenv instalēta datorā.
5) datorā instalētas Mozilla Firefox un Google Chrome tīmekļa pārlūkprogrammas.
6) Zināšanas par to, kā savā sistēmā instalēt Firefox Gecko draiveri un Chrome tīmekļa draiveri.

Lai izpildītu 4., 5. un 6. prasību, varat izlasīt manu rakstu Iepazīšanās ar selēnu ar Python 3 pie Linuxhint.com.

Vietnē LinuxHint varat atrast daudz citu rakstu par nepieciešamajām tēmām.com. Ja jums nepieciešama papildu palīdzība, noteikti pārbaudiet šos rakstus.

Projektu direktorijas iestatīšana

Lai viss būtu sakārtots, izveidojiet jauno projekta direktoriju selēns - ekrānuzņēmums /, sekojoši:

$ mkdir -pv selenium-screenshot / attēli, draiveri

Pārejiet uz selēns - ekrānuzņēmums / projekta direktorijā:

$ cd selēns - ekrānuzņēmums /

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

$ virtualenv .venv

Aktivizējiet virtuālo vidi šādi:

$ avots .venv / bin / aktivizēt

Instalējiet selēnu, izmantojot PIP3, šādi:

$ pip3 instalējiet selēnu

Lejupielādējiet un instalējiet vajadzīgo tīmekļa draiveri vadītāji / projekta direktoriju. Rakstā es paskaidroju tīmekļa draiveru lejupielādes un instalēšanas procesu Iepazīšanās ar selēnu ar Python 3. Ja jums nepieciešama palīdzība šajā jautājumā, meklējiet LinuxHint.com par šo rakstu.

Ekrānuzņēmumu uzņemšanas pamati ar selēnu

Šajā sadaļā tiks sniegts ļoti vienkāršs pārlūka ekrānuzņēmumu uzņemšanas piemērs, izmantojot Selenium.

Vispirms izveidojiet jaunu Python skriptu ex01_google-chrome.py un skriptā ierakstiet šādas kodu rindas.

no selēna importa tīmekļa draivera
no selēna.tīmekļa draiveris.bieži.atslēgu importēšana
googleChromeOptions = tīmekļa draiveris.hroms.iespējas.Opcijas ()
googleChromeOptions.bez galvas = patiess
googleChromeOptions.add_argument ('- loga izmērs = 1280 720')
googleChrome = tīmekļa draiveris.Chrome (izpildāmā_ceļš = "./ draiveri / chromedriver ",
options = googleChromeOptions)
pageUrl = "https: // www.w3skolas.com ";
googleChrome.iegūt (pageUrl)
googleChrome.save_screenshot ('images / w3schools_google-chrome.png ')
googleChrome.aizvērt ()

Kad esat pabeidzis, saglabājiet ex01_google-chrome.py Python skripts.

4. rindiņa izveido Iespējas objekts Google Chrome tīmekļa pārlūkprogrammai.

5. līnija nodrošina pārlūka Google Chrome režīmu bez galvas.

6. rinda nosaka loga izmēru uz 1280 × 720 pikseļiem.

8. Rindā tiek izveidots pārlūka objekts, izmantojot Chrome draiveri, un saglabājiet to googleChrome mainīgais.

10. rinda nosaka a pageUrl mainīgais. The pageUrl mainīgajam ir tās tīmekļa lapas URL, kuru Selenium ekrānuzņēmīs.

11. rinda ielādē pageUrl pārlūkprogrammā.

12. rindā tiek izmantots save_screenshot () metode, kā pārlūkprogrammas loga ekrānuzņēmumu saglabāt failā w3schools_google-chrome.png iekš attēli / projekta direktoriju.

Visbeidzot, 14. līnija aizver pārlūku.

Pēc tam palaidiet ex01_google-chrome.py Python skripts:

$ python3 ex01_google-chrome.py

Veiksmīgi izpildot skriptu, ekrānuzņēmums tiks saglabāts attēla failā w3schools_google-chrome.png iekš attēli / projekta direktoriju, kā redzat zemāk redzamajā ekrānuzņēmumā.

Lai uzņemtu tās pašas vietnes ekrānuzņēmumu, bet Firefox tīmekļa pārlūkprogrammā, izveidojiet jauno Python skriptu ex01_firefox.py un skriptā ierakstiet šādas kodu rindas.

no selēna importa tīmekļa draivera
no selēna.tīmekļa draiveris.bieži.atslēgu importēšana
firefoxOptions = tīmekļa draiveris.firefox.iespējas.Opcijas ()
FirefoxIespējas.bez galvas = patiess
FirefoxIespējas.add_argument ('- platums = 1280')
FirefoxIespējas.add_argument ('- augstums = 720')
Firefox = tīmekļa draiveris.Firefox (izpildāmā_ceļš = "./ draiveri / geckodriver ", options = firefoxOptions)
pageUrl = "https: // www.w3skolas.com ";
firefox.iegūt (pageUrl)
firefox.save_screenshot ('images / w3schools_firefox.png ')
firefox.aizvērt ()

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

4. rindiņa izveido Iespējas objekts Firefox tīmekļa pārlūkprogrammai.

5. līnija nodrošina Firefox režīmu bez galvas.

6. rindā pārlūka loga platums tiek iestatīts uz 1280 pikseļiem, bet 7. rindā - pārlūkprogrammas loga augstums ir 720 pikseļi.

9. Rinda izveido pārlūka objektu, izmantojot Firefox Gecko draiveri, un saglabā to firefox mainīgais.

11. rindā ir definēts a pageUrl mainīgais. The pageUrl mainīgajam ir tās tīmekļa vietnes URL, kuru Selenium ekrānuzņēmīs.

13. rinda ielādē pageUrl pārlūkprogrammā.

14. rindā tiek izmantots save_screenshot () metode, kā pārlūkprogrammas loga ekrānuzņēmumu saglabāt failā w3schools_firefox.png iekš attēli / projekta direktoriju.

Visbeidzot, 15. līnija aizver pārlūku.

Pēc tam palaidiet ex01_firefox.py Python skripts:

$ python3 ex01_firefox.py

Veiksmīgi izpildot skriptu, ekrānuzņēmums jāsaglabā attēla failā w3schools_firefox.png iekš attēli / projekta direktoriju, kā redzat zemāk redzamajā ekrānuzņēmumā.

Dažādu ekrānu izšķirtspēju ekrānuzņēmumu uzņemšana

Šajā sadaļā tiks parādīts, kā vienā un tajā pašā tīmekļa vietnē uzņemt ekrānuzņēmumus ar dažādu ekrāna izšķirtspēju. Šajā sadaļā es izmantošu Google Chrome tīmekļa pārlūkprogrammu, taču šajā sadaļā varat izmantot Firefox vai jebkuru citu pārlūkprogrammu.

Vispirms izveidojiet jauno Python skriptu ex02.py un skriptā ierakstiet šādas koda rindas.

no selēna importa tīmekļa draivera
no selēna.tīmekļa draiveris.bieži.atslēgu importēšana
pageUrl = "https: // www.w3skolas.com / ";
izšķirtspēja = ['320,1080', '500,1080', '720,1080', '1366,1080', '1920,1080']
rezolūcijām rezolūcijai:
drukāt ("Notiek ekrānuzņēmuma izšķirtspēja% s…"% (izšķirtspēja.aizstāt (',', 'x')))
chromeOptions = tīmekļa draiveris.Chrome opcijas ()
hroms Iespējas.bez galvas = patiess
hromsIespējas.add_argument ('- window-size =' + izšķirtspēja)
hroms = tīmekļa draiveris.Chrome (izpildāmā_ceļš = "./ draiveri / chromedriver ", options = chromeOptions)
hroms.iegūt (pageUrl)
outputImage = 'images / homepage_chrome_' + izšķirtspēja.aizstāt (',', '_') + '.png '
hroms.save_screenshot (outputImage)
hroms.aizvērt ()
print ('Saglabāts mapē% s.'% (outputImage))

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

4. rinda definē a pageUrl mainīgais, kas satur tīmekļa lapas URL, no kura es vēlētos uzņemt ekrānuzņēmumus dažādās ekrāna izšķirtspējās.

5. rinda definē a rezolūcijas saraksts, kurā ir to izšķirtspēju saraksts, no kurām es vēlētos uzņemt ekrānuzņēmumus.

7. rinda atkārtojas caur katru no izšķirtspējas iekšā rezolūcijas sarakstā.

Cilpas iekšpusē 8. rinda uz konsoles izdrukā nozīmīgu ziņojumu.

10-15. Rinda izveido pārlūka objektu ar izšķirtspēja pašreizējās cilpas atkārtojuma un saglabā to hroms mainīgais.

17. rinda ielādē pageUrl pārlūkprogrammā.

19. rinda ģenerē attēla ceļu, kur tiks saglabāts ekrānuzņēmums, un attēlu saglabā mapē outputImage mainīgais.

20. rindiņa uzņem pārlūkprogrammas loga ekrānuzņēmumu un saglabā to ceļā outputImage.

21. rindiņa aizver pārlūku.

22. rinda uz konsoles izdrukā nozīmīgu ziņojumu un beidz cilpu.

Tad cilpa sākas no jauna ar nākamo ekrāna izšķirtspēju (t.i.e., nākamais saraksta vienums).

Pēc tam palaidiet ex02.py Python skripts:

$ python3 ex02.py

Python skripts ex02.py vajadzētu uzņemt norādītā URL ekrānuzņēmumus katrā no izvēlētajām ekrāna izšķirtspējām.

Ekrānuzņēmums no w3skolas.com 320 pikseļu platumā.

Ekrānuzņēmums no w3skolas.com 500 pikseļu platumā.

Ekrānuzņēmums no w3skolas.com 720 pikseļu platumā.

Ekrānuzņēmums no w3skolas.com 1366 pikseļu platumā.

Ekrānuzņēmums no w3skolas.com 1920 pikseļu platumā.

Ja salīdzināt ekrānuzņēmumus, jums vajadzētu redzēt, ka lietotāja saskarne mainās ar pārlūkprogrammas loga platumu. Izmantojot Selenium ekrānuzņēmuma funkciju, jūs ātri un viegli varat redzēt, kā jūsu vietne izskatās dažādās ekrāna izšķirtspējās.

Secinājums

Šis raksts parādīja dažus no ekrānuzņēmumu uzņemšanas pamatiem, izmantojot Selenium, kā arī Chrome un Firefox tīmekļa draiverus. Raksts arī parādīja, kā uzņemt ekrānuzņēmumus dažādās ekrāna izšķirtspējās. Tam vajadzētu palīdzēt sākt darbu ar Selenium ekrānuzņēmuma funkciju.

Labākās spēles, ko spēlēt ar rokas izsekošanu
Oculus Quest nesen iepazīstināja ar lielisku ideju par rokas izsekošanu bez kontrolieriem. Ar arvien lielāku spēļu un aktivitāšu skaitu, kas atbalsta ...
Kā parādīt OSD pārklājumu pilnekrāna Linux lietotnēs un spēlēs
Spēlējot pilnekrāna spēles vai lietojot lietotnes bez atrautības pilnekrāna režīmā, jūs varat izslēgt no attiecīgās sistēmas informācijas, kas redzama...
Top 5 spēļu tveršanas kartes
Mēs visi esam redzējuši un mīlējuši straumēšanas spēles pakalpojumā YouTube. PewDiePie, Jakesepticye un Markiplier ir tikai daži no labākajiem spēlētā...