A Puppeteer Browser Class nagyszerű tanulási útmutatója (8. oktatóanyag)

A Puppeteer egy nyílt forráskódú csomóponti js könyvtár, amelyet webautomatizálásra, valamint webkaparó eszközre használják. A Puppeteerrel való munka megkezdéséhez meg kell ismernie a Javascriptet és a HTML DOM-struktúrát. Ez a Puppeteer oktatósorozat az alábbi szegmensekben található, amelyek minden szükséges tapasztalattal felvértezik Önt a Puppeteerrel való munka megkezdéséhez. 

Bábos bemutató

1. Tosca oktatóanyag: Bábos áttekintése

2. Tosca oktatóanyag: Bábos környezeti változók

3. Tosca oktatóanyag: A Puppeteer Web Scraping és Puppeteer Test Automation áttekintése

4. Tosca oktatóanyag: Telepítse a Puppeteer programot

5. Tosca oktatóanyag: Minta bábos projekt

6. Tosca oktatóanyag: Bábos automatizálási tesztelés

7. Tosca oktatóanyag: Bábos osztály

8. Tosca oktatóanyag: Bábos böngésző osztály

Tosca oktatói #9: Bábos oldal osztály

Ebben a „Puppeteer Browser Class” oktatóanyagban részletesebben megismerjük az alább említett osztályokat, amelyek fontos névtereket, eseményeket és egyéb kimerítő módszereket tartalmaznak, amelyek szükségesek a Puppeteer webkaparási technikáinak használatához.  

Bábjátékos BrowserFetcher osztály

A Puppeteer BrowserFetcher Class a különböző böngészőverziók letöltésére és kezelésére szolgál. A BrowserFetcher osztály egy revíziós karakterláncon működik, amely meghatározza a Chrome böngésző verzióját. A felülvizsgálati szám a következő címen szerezhető be itt. Firefox esetén a verziószám alapján éjszakánként letölti a böngészőt.

Az alábbi példa bemutatja, hogyan kell letölteni és indítsa el a chrome böngészőt a BrowserFetcher osztály használatával.

const browserFetcher = bábjátékos.createBrowserFetcher(); const revInfo = várja a browserFetcher.download('766890'); const browserChrome= várja a puppeteer.launch({executablePath: revInfo.executablePath})

Nem lehetséges egyidejűleg dolgozni a BrowserFetcher osztály másik példányával. A BrowserFetcher osztály gyakran használt metódusait a következő szakaszok ismertetik.

Bábjátékos BrowserFetcher osztály – Módszerek:

Az alábbi metódusok a bábjátékos böngészőfetcher osztályban érhetők el,

browserFetcher.canDownload(felülvizsgálat) – Ez a módszer a böngésző verziószámának segítségével a fejléc kérés részeként ellenőrzi a megadott böngésző elérhetőségét. A metódus a logikai értéket (igaz vagy hamis) adja vissza a rendelkezésre állás alapján.

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

browserFetcher.download(revision[, progressCallback]) – Ez a módszer letölti a Chrome böngészőt a verziószám argumentum használatával. Itt a progressCallback egy opcionális argumentum, amely két argumentummal hívja meg a függvényt – a letöltött bájtokat és az összes bájtot. Ez a metódus ígéret objektumként adja vissza a revíziós információkat.

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

browserFetcher.host() – Visszaadja a böngésző letöltéséhez használt gazdagépnevet.

const hostName = böngészőFetcher.host();

browserFetcher.localRevisions() – Visszaadja a helyi rendszerben elérhető összes változat listáját.

const revList = browserFetcher.localRevisions();

browserFetcher.platform() – Visszaadja a gazdagép platformnevét, amely a mac, Linux, win32 vagy win64 bármelyike ​​lesz.

const platformName = böngészőFetcher.platform();

browserFetcher.product() – Visszaadja a böngésző nevét, amely chrome vagy firefox lesz

const terméknév = böngészőFetcher.product();

browserFetcher.remove(felülvizsgálat) – Ez a módszer az aktuális termék/böngésző megadott változatának eltávolítására szolgál. Visszaadja az ígéret objektumot, amely a folyamat befejezése után feloldásra kerül.

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

browserFetcher.revisionInfo(felülvizsgálat) – Olyan objektumot ad vissza a revízióinformációkon, amelyek tartalmazzák a változatot, a folderPath-et, a executablePath-et, az url-t, a local-t és a terméket.

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

Referencia: Kattints itt hogy többet tudjon meg a BrowserFetcher osztály metódusairól.

Bábjátékos Böngésző osztály

A Puppeteer Browser osztály akkor jön létre, amikor a bábjátékos elindította vagy csatlakoztatta a böngészőt bábos.indít or bábszínész.csatlakozik mód.

Az alábbi példa bemutatja, hogyan kell létrehozni a Böngésző osztályt és oldalt a böngésző hivatkozás segítségével.

const bábszínész = követelmény('bábos'); (async () => { const browserChrome = várja a puppeteer.launch(); const pageChrome = await browserChrome.newPage(); várjon pageChrome.goto('https://www.google.com'); várja a browserChrome.close( ); })();

A Browser osztály gyakran használt eseményeit és metódusait a következő részben ismertetjük.

Bábjátékos Böngésző osztály – Események:

Az alábbi események böngésző osztályban érhetők el,

  • browser.on('disconnected') – Ez az esemény a böngésző bezárásakor/összeomlásakor indul el, ill böngésző.lekapcsolódás módszert hívják.
  • browser.on('targetchanged') – Ez az esemény akkor indul el, ha a cél URL-je megváltozik.
  • browser.on('targetcreated') – Ez az esemény akkor indul el, amikor az új oldal a metódus szerint új lapon vagy ablakban nyílik meg browser.newPage or ablak.nyitni.
  • browser.on('targetdestroyed') – Ez az esemény akkor indul el, amikor a célpont megsemmisül, azaz az oldal bezárul.

Bábjátékos Böngésző osztály – Módszerek:

Az alábbi metódusok érhetők el a böngésző osztályban,

  • browser.browserContexts() – Visszaadja az összes böngészőkörnyezet listáját. Egy újonnan elindított böngésző esetén ez a módszer egyetlen BrowserContext példányt ad vissza.
  • browser.close() – Ezzel a módszerrel bezárja az összes megnyitott chromium-böngésző oldalt. 

várjon böngésző.close();

  • browser.createIncognitoBrowserContext() – Létrehozza/visszaadja az inkognitó böngészőkörnyezetet, amely soha nem osztja meg a cookie-kat vagy a gyorsítótárat más böngészőkörnyezetekkel. Az alábbi példában a weboldal (google) inkognitó módban nyílik meg.

(async () => {
  const chromeBrowser = várja a bábjátékost.launch();
  // Új inkognitó böngészőkörnyezet létrehozása.
  const context = várja a chromeBrowser.createIncognitoBrowserContext();
  const pageChrome = várja a kontextust.newPage();
  várjon oldalraChrome.goto('https://www.google.com');
}) ();

  • browser.defaultBrowserContext() – Visszaadja az alapértelmezett böngészőkörnyezetet, amelyet nem lehet megsemmisíteni vagy bezárni.
  • browser.disconnect() – Leválasztja a böngészőt a bábjátékról. A böngésző azonban ebben az esetben futni fog.
  • browser.isConnected() – Ez a módszer ellenőrzi, hogy a böngésző csatlakozik-e vagy sem. Az ellenőrzés alapján logikai értékeket ad vissza.

const boolFlag = várja a böngészőt.isConnected();

  • browser.newPage() – Ez a módszer új oldalt hoz létre, és visszaadja az oldal példányát.

const page = várja böngésző.newPage();

  • browser.pages() – Ez a módszer visszaadja az összes jelenleg nyitott állapotban lévő oldal listáját.

const pageList = várakozás böngésző.oldalak();

  • browser.process() – Ez a módszer a létrehozott böngészőfolyamatot adja vissza. Ha a böngésző a browser.connect metódust, és null értéket ad vissza.
  • browser.target() – Ez a módszer a böngészőhöz társított célt adja vissza.

const target = várjon browser.target();

  • browser.targets() – Visszaadja a böngészőn belüli összes aktív cél listáját.

const targetList = várakozás böngésző.targets();

  • browser.userAgent() – Visszaadja az ígéret objektumot a böngésző eredeti ügynökéről.
  • browser.version() – Visszaadja a böngésző verzióját „HeadlessChrome/xx.x.xxxx.x” a fej nélküli krómhoz és „Chrome/xx.x.xxxx.x' nem fej nélküli krómhoz. A formátum egy későbbi kiadásban változhat.
  • browser.waitForTarget(predikátum[, beállítások]) – Az összes böngészőkörnyezetben keresni fog, és várja a célt.

várjon oldalraChrome.evaluate(() => window.open('https://lambdageeks.com/'));
const newWindowTarget = várja a böngészőt.waitForTarget(target => target.url() === 'https://lambdageeks.com/');

  • browser.wsEndpoint() – Visszaadja a böngésző web socket URL-jét.

const wsUrl = várja böngészőt.wsEndPoint();

Referencia: Kattints itt hogy többet tudjon meg a Böngésző osztály eseményeiről és módszereiről.

Bábjátékos BrowserContext osztály

A BrowserContext osztály segít több böngészőpéldány működtetésében. Egy böngészőpéldány elindítása után alapértelmezés szerint egyetlen BrowserContext kerül felhasználásra. A böngésző Chrome.új oldal() metódus létrehoz egy oldalt az alapértelmezett BrowserContext osztályobjektumban. Ha egy weboldal egy másik oldalt hív meg, akkor az új oldalnak a szülőoldal böngészőkontextusához kell tartoznia. Itt az új oldal a segítségével hozható létre window.open () módszer. 

Az alábbi példában a Puppeteer képes böngészőkontextust létrehozni „inkognitó” módban. Az „inkognitó” böngészőkörnyezet nem ír adatokat a tárolóba.

// Inkognitó böngészőkörnyezet létrehozása const contextIncognito = await browserChrome.createIncognitoBrowserContext(); // Új oldal létrehozása a böngésző kontextusán keresztül. const pageChrome = vár kontextusIncognito.newPage(); várjon oldalraChrome.goto('https://www.google.com'); //kontextus bezárása használat után várakozás contextIncognito.close();

A BrowserContext osztály gyakran használt eseményeit és metódusait a következő részben ismertetjük.

Bábjátékos BrowserContext osztály – Események:

Az alábbi események böngészőkontextus osztályban érhetők el,

  • browserContext.on(targetchanged) – Ez az esemény akkor indul el, ha a cél URL-címe megváltozik a böngésző környezetében.
  • browserContext.on(targetcreated) – Ez az esemény a böngészőkontextuson belüli létrehozása után indul el. A módszerek ablak.nyitni és a browserContext.newPage felelősek ezért az eseményért.
  • browserContext.on('targetdestroyed') – Ez az esemény akkor indul el, amikor a cél megsemmisül a böngésző környezetében.

Bábjátékos BrowserContext osztály – Módszerek:

Az alábbi módszerek böngészőkontextus osztályban érhetők el,

  • browserContext.browser() – Ez a metódus a böngészőkörnyezetben elérhető böngészőobjektumot adja vissza.
  • browserContext.clearPermissionOverrides() – Ez a módszer eltávolítja az összes engedély-felülírást a böngésző környezetéből. Az alábbi példa bemutatja, hogyan kell használni ezt a módszert – 

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

  • browserContext.close() – Ez a módszer a böngésző kontextusának bezárására vagy megsemmisítésére szolgál. A böngészőkörnyezetben elérhető összes böngésző bezárásra kerül.

browserContext.close();

  • browserContext.isIncognito() – Ezzel a módszerrel ellenőrizhető, hogy a böngésző „inkognitó” módban jött-e létre. Logikai értéket (true – inkognitó mód vagy false – nem inkognitó mód) ad vissza a böngésző mód alapján. Alapértelmezés szerint minden böngésző „nem inkognitó” módban kerül meghívásra.

const boolIsIncognito = browserContext.isIncognito();

  • browserContext.newPage() – Ezzel a módszerrel új oldalt hozhatunk létre ugyanabban a böngészőkörnyezetben.

browserContext.newPage();

  • browserContext.overridePermissions(eredet, engedély) – Ezzel a módszerrel adják meg a megadott engedélyt az eredethez, azaz a cél URL-hez. A megadható különböző engedélyek a következők:
  • "földrajzi hely"
  • „midi-sysex” (rendszer-kizárólagos midi)
  • "midi"
  • 'nyom'
  • 'kamera'
  • "értesítések"
  • 'mikrofon'
  • 'környezeti fényérzékelő'
  • 'gyorsulásmérő'
  • "háttérszinkron"
  • 'giroszkóp'
  • "akadálymentesítési események"
  • 'vágólap-olvasás'
  • 'magnetométer'
  • 'vágólap-írás'
  • "fizetéskezelő"

Az alábbi példa bemutatja az engedély megadását –

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

  • browserContext.pages() – Ez a módszer a böngészőben elérhető összes megnyitott oldal listáját adja vissza. A nem látható oldalak nem jelennek meg itt.

const openPageList = browserContext.pages();

  • browserContext.targets() – Ez a módszer visszaadja a böngészőben elérhető összes aktív cél listáját. A nem látható oldalak nem jelennek meg itt.

const activeTargetList = browserContext.targets();

  • browserContext.waitForTarget(predikátum[, beállítások]) – Ez a módszer arra szolgál, hogy megvárja, amíg egy cél megjelenik, és visszaadja a célobjektumot. Az 'predikátum' argumentum alapvetően egy függvényhívás minden egyes célhoz. Ezenkívül opcionálisan átadhatunk néhány konfigurációs értéket, például az időtúllépést második argumentumként.
várjon oldalraChrome.evaluate(() => window.open('https://www.google.com/')); const newWindowTarget = await browserContext.waitForTarget(target => target.url() === 'https://www.google.com/');

Referencia: Kattints itt hogy többet megtudjon a BrowserContext osztály eseményeiről és metódusairól.

Következtetés:

Ebben a „Puppeteer Browser Class” oktatóanyagban elmagyaráztuk a BrowserFetcher osztályt, a BrowserContext osztályt és a Browser osztályt, amelyek a fontos névtereket (ha vannak), eseményeket (ha vannak) és metódusokat tartalmaznak, amelyeket gyakran használnak a Puppeteer webkaparási technikáiban. példák. A következő cikkben elmagyarázzuk a Page, Frame és Dialog osztályt.

Írj hozzászólást

E-mail címed nem kerül nyilvánosságra. Kötelező kitölteni *

Lapozzon a lap tetejére