Fantastisk læringsvejledning til Puppeteer Browser Class (Tutorial 8)

Puppeteer er et open source-node js-bibliotek og bruges et webautomatiserings- og web-skrabeværktøj. Du har brug for den grundlæggende forståelse af Javascript og HTML DOM-struktur for at begynde at arbejde med Puppeteer. Denne Puppeteer-tutorialserie er fordelt i nedenstående segmenter, som vil udstyre dig med al den nødvendige erfaring for at begynde at arbejde med Puppeteer. 

Teatervejledning til dukkefører

Tosca Tutorial # 1: Puppeteer Oversigt

Tosca Tutorial # 2: Variabler til dukketeatermiljø

Tosca Tutorial # 3: Puppeteer Web Scraping og Puppeteer Test Automation Overview

Tosca Tutorial # 4: Installer Puppeteer

Tosca Tutorial # 5: Prøve dukketeaterprojekt

Tosca Tutorial # 6: Marionetstests automatiseringstest

Tosca Tutorial # 7: Dukkeklasse

Tosca Tutorial # 8: Puppeteer Browser-klasse

Tosca tutorial #9: Dukkefører-sideklasse

I denne "Puppeteer Browser Class" -vejledning vil vi have en dybdegående forståelse af de nedenfor nævnte klasser, som består af de vigtige navneområder, begivenheder og andre udtømmende metoder, der er nødvendige for at arbejde med Puppeteer-webskrabningsteknikker.  

dukkefører BrowserFetcher-klasse

Puppeteer BrowserFetcher Class bruges til at downloade og administrere de forskellige browserversioner. BrowserFetcher-klassen fungerer på en revisionsstreng, der specificerer versionen af ​​Chrome-browseren. Revisionsnummeret kan fås fra link.. I tilfælde af Firefox downloader den browseren om natten baseret på versionsnummeret.

Nedenstående eksempel viser, hvordan du downloader og start Chrome-browseren ved hjælp af BrowserFetcher-klassen.

const browserFetcher = puppeteer.createBrowserFetcher(); const revInfo = afvent browserFetcher.download('766890'); const browserChrome= await puppeteer.launch({executablePath: revInfo.executablePath})

Det er ikke muligt at arbejde samtidigt med en anden forekomst af BrowserFetcher-klassen. De ofte anvendte metoder i BrowserFetcher-klassen forklares i de næste afsnit.

dukkefører BrowserFetcher-klasse - Metoder:

Nedenstående metoder er tilgængelige i puppeteater browserfetcher klasse,

browserFetcher.canDownload (revision) - Ved hjælp af browserens revisionsnummer kontrollerer denne metode tilgængeligheden af ​​den angivne browser som en del af headeranmodningen. Metoden returnerer den boolske værdi (sand eller falsk) baseret på tilgængelighed.

const boolVar = browserFetcher.canDownload ('766890');

browserFetcher.download (revision [, progressCallback]) - Denne metode downloader Chrome-browseren ved hjælp af argumentet om revisionsnummer. Her er progressCallback et valgfrit argument, der kalder funktionen med to argumenter - downloadede bytes og samlede bytes. Denne metode returnerer revisionsoplysningerne som et løfteobjekt.

const revInfo = browserFetcher.download ('766890');

browserFetcher.host () - Det returnerer værtsnavnet, som bruges til download af browseren.

const hostName = browserFetcher.host ();

browserFetcher.localRevisions () - Den returnerer listen over alle revisioner, der er tilgængelige i det lokale system.

const revList = browserFetcher.localRevisions ();

browserFetcher.platform () - Det returnerer platformens navn på værten, som vil være en hvilken som helst af mac, Linux, win32 eller win64.

const platformName = browserFetcher.platform ();

browserFetcher.product () - Det returnerer browsernavnet, som enten er krom eller firefox

const productName = browserFetcher.product ();

browserFetcher.remove (revision) - Denne metode bruges til at fjerne den specificerede revision for det aktuelle produkt / browser. Det returnerer løfteobjektet, som løses efter afslutning af processen.

const revInfo = browserFetcher.remove ('766890');

browserFetcher.revisionInfo (revision) - Det returnerer et objekt på revisionsoplysninger, der inkluderer revision, folderPath, executablePath, url, local og product.

const revInfo = browserFetcher.revisionInfo ('766890');

Reference: Klik link. for at lære mere om BrowserFetcher Class-metoder.

dukkefører Browser klasse

Puppeteer Browser-klassen oprettes, når marionetisten startede eller forbandt browseren ved hjælp af dukketeater. lancering or dukketeater. forbind metoder.

Nedenstående eksempel viser, hvordan du opretter browserklassen og siden ved hjælp af browserhenvisningen.

const dukkefører = require('dukkefører'); (async () => { const browserChrome = await puppeteer.launch(); const pageChrome = await browserChrome.newPage(); await pageChrome.goto('https://www.google.com'); await browserChrome.close( })();

De ofte anvendte begivenheder og metoder i browserklassen forklares i det næste afsnit.

dukkefører Browser klasse - begivenheder:

Nedenstående begivenheder er tilgængelige i browser klasse,

  • browser.on ('afbrudt') - Denne begivenhed udløses, når browseren lukkes / går ned eller browser. afbryd metode kaldes.
  • browser.on ('targetchanged') - Denne begivenhed udløses, når målets url er ændret.
  • browser.on ('targetcreated') - Denne begivenhed udløses, når den nye side åbnes i en ny fane eller et nyt vindue efter metoden browser.newPage or window.open.
  • browser.on ('targetdestroyed') - Denne begivenhed udløses, når målet ødelægges, dvs. siden lukkes.

dukkefører Browser klasse - Metoder:

Nedenstående metoder er tilgængelige i browser klasse,

  • browser.browserContexts () - Det returnerer listen over alle browserkontekster. For en nystartet browser returnerer denne metode den enkelte BrowserContext-forekomst.
  • browser.close () - Denne metode bruges til at lukke alle de åbne sider i Chrome-browseren. 

afventer browser.close ();

  • browser.createIncognitoBrowserContext () - Det opretter / returnerer inkognito-browserkonteksten, som aldrig deler cookies eller cache med andre browserkontekster. I nedenstående eksempel åbnes websiden (google) i inkognitotilstand.

(async () => {
  const chromeBrowser = afventer puppeteer.launch ();
  // Opret ny inkognitobrowserkontekst.
  const context = afventer chromeBrowser.createIncognitoBrowserContext ();
  const pageChrome = afventer kontekst.newPage ();
  afventer pageChrome.goto ('https://www.google.com');
}) ();

  • browser.defaultBrowserContext () - Det returnerer standard browserkontekst, som ikke kan ødelægges eller lukkes.
  • browser.disconnect () - Det afbryder browseren fra dukketeateren. Men browseren vil fortsat køre i dette tilfælde.
  • browser.isConnected () - Denne metode kontrollerer, om browseren er tilsluttet eller ej. Det returnerer boolske værdier baseret på kontrollen.

const boolFlag = afventer browser.isConnected ();

  • browser.newPage () - Denne metode opretter en ny side og returnerer forekomsten af ​​siden.

const page = afventer browser.newPage ();

  • browser.pages () - Denne metode returnerer listen over alle sider, der i øjeblikket er i åben tilstand.

const pageList = afventer browser.pages ();

  • browser.process () - Denne metode returnerer den oprettede browserproces. Hvis browseren oprettes vha browser.connect metode, og den returnerer en nulværdi.
  • browser.target () - Denne metode returnerer det mål, der er knyttet til browseren.

const target = afventer browser.target ();

  • browser.targets () - Det returnerer listen over alle aktive mål i browseren.

const targetList = afventer browser.targets ();

  • browser.userAgent () - Det returnerer løfteobjektet om browserens originale agent.
  • browser.version () - Den returnerer versionen af ​​browseren i formatet 'HeadlessChrome / xx.x.xxxx.x 'til krom uden hoved og' Chrome / xx.x.xxxx.x 'til krom uden hoved. Formatet kan ændres i en fremtidig udgivelse.
  • browser.waitForTarget (predikat [, optioner]) - Det søger i alle browserkontekster og venter på målet.

afventer pageChrome.evaluate (() => window.open ('https://lambdageeks.com/'));
const newWindowTarget = afventer browser.waitForTarget (target => target.url () === 'https://lambdageeks.com/');

  • browser.wsEndpoint () - Det returnerer web-socket url i browseren.

const wsUrl = afventer browser.wsEndPoint ();

Reference: Klik link. for at lære mere om begivenheder og metoder i browserklassen.

dukkefører BrowserContext-klasse

BrowserContext-klassen hjælper med at betjene flere browserinstanser. Efter start af en browserinstans bruges som standard en enkelt BrowserContext. Det browserChrome.newPage () metoden opretter en side i standardobjektet BrowserContext-klasse. Hvis en webside påberåber sig en anden side, skal den nye side tilhøre browsercontext for den overordnede side. Her kan den nye side oprettes ved hjælp af og window.open () fremgangsmåde. 

I nedenstående eksempel har Puppeteer muligheden for at oprette en browserkontekst i 'inkognito' -tilstand. 'Incognito' browserkonteksten skriver ingen data i lageret.

// Oprettelse af inkognitobrowserkontekst const contextIncognito = afvent browserChrome.createIncognitoBrowserContext(); // Ny sideoprettelse gennem browserkonteksten. const pageChrome = afvent kontekstIncognito.newPage(); afvent pageChrome.goto('https://www.google.com'); //luk kontekst efter brug afvent contextIncognito.close();

De ofte anvendte begivenheder og metoder i BrowserContext-klassen forklares i det næste afsnit.

dukkefører BrowserContext Class - Begivenheder:

Nedenstående begivenheder er tilgængelige i browsercontext klasse,

  • browserContext.on (målændret) - Denne begivenhed udløses, når målets url inden for browserkonteksten er ændret.
  • browserContext.on (targetcreated) - Denne begivenhed udløses efter oprettelse af i browserkonteksten. Metoderne window.open browserContext.newPage er ansvarlige for denne begivenhed.
  • browserContext.on ('targetdestroyed') - Denne begivenhed udløses, når målet ødelægges i browserkonteksten.

dukkefører BrowserContext Class - Metoder:

Nedenstående metoder er tilgængelige i browsercontext klasse,

  • browserContext.browser () - Denne metode returnerer det browserobjekt, der er tilgængeligt i browserkonteksten.
  • browserContext.clearPermissionOverrides () - Denne metode fjerner alle tilsidesættelser af tilladelser fra browserkonteksten. Eksemplet nedenfor viser, hvordan du bruger denne metode - 

const browserContext = browser.defaultBrowserContext ();
browserContext.overridePermissions ('https://www.google.com', ['clipboard-read']);
browserContext.clearPermissionOverrides ();

  • browserContext.close () - Denne metode bruges til at lukke eller ødelægge browserkonteksten. Alle tilgængelige browsere inden for browserkonteksten lukkes.

browserContext.close ();

  • browserContext.isIncognito () - Denne metode bruges til at kontrollere, om browseren er oprettet i 'inkognitotilstand' eller ej. Det returnerer en boolsk værdi (sand - inkognitotilstand eller falsk - ikke-inkognitotilstand) baseret på browsertilstand. Som standard påkaldes enhver browser i 'ikke-inkognitotilstand'.

const boolIsIncognito = browserContext.isIncognito ();

  • browserContext.newPage () - Denne metode bruges til at oprette en ny side i samme browsercontext.

browserContext.newPage ();

  • browserContext.overridePermissions (oprindelse, tilladelse) - Denne metode bruges til at give den angivne tilladelse til oprindelsen, dvs. målwebadressen. De forskellige tilladelser, der er tilgængelige for at give, er -
  • 'geolocation'
  • 'midi-sysex' (system-eksklusiv midi)
  • 'midi'
  • 'skubbe'
  • 'kamera'
  • 'meddelelser'
  • 'mikrofon'
  • 'omgivende lys-sensor'
  • 'accelerometer'
  • 'baggrundssynkronisering'
  • 'gyroskop'
  • 'tilgængelighed-begivenheder'
  • 'udklipsholderlæs'
  • 'magnetometer'
  • 'udklipsholder-skriv'
  • 'betalingshåndterer'

Eksemplet nedenfor viser, hvordan man giver tilladelse -

const browserContext = browser.defaultBrowserContext ();
afventer browserContext.overridePermissions ('https://www.google.com', ['geolocation']);

  • browserContext.pages () - Denne metode returnerer listen over alle tilgængelige sider i browserkonteksten. Enhver ikke-synlig side vises ikke her.

const openPageList = browserContext.pages ();

  • browserContext.targets () - Denne metode returnerer listen over alle aktive mål tilgængelige i browserkonteksten. Enhver ikke-synlig side vises ikke her.

const activeTargetList = browserContext.targets ();

  • browserContext.waitForTarget (predikat [, optioner]) - Denne metode bruges til at vente på, at et mål er dukket op og returnerer målobjektet. Argumentet 'predikat' er grundlæggende et funktionsopkald for hvert af målene. Alternativt kan vi videregive nogle konfigurationsværdier såsom timeout som et andet argument.
await pageChrome.evaluate(() => window.open('https://www.google.com/')); const newWindowTarget = afvent browserContext.waitForTarget(target => target.url() === 'https://www.google.com/');

Reference: Klik link. for at læse mere om BrowserContext klasse begivenheder og metoder.

konklusion:

I denne "Puppeteer Browser Class" -vejledning har vi forklaret BrowserFetcher-klassen, BrowserContext-klassen og Browser-klassen, der inkluderer de vigtige navneområder (hvis nogen), begivenheder (hvis nogen) og metoder, der ofte bruges i Puppeteer-webskrabningsteknikker med eksempler. I den næste artikel forklarer vi klassen Side, Ramme og Dialog.

Efterlad en kommentar