javascript - Puppeteer: Jednoduchší spôsob, ako pracovať so stránkami vytvorenými kliknutím na a[target="_blank"]; počkať na načítanie a zahrnúť časové limity

Prehľad

Hľadám jednoduchší spôsob, ako riešiť kliknutie na odkazy, ktoré otvárajú nové stránky (napríklad anchor tagy s target="_blank").

Tu znamená handle:

javascript - ako spustiť puppeteer s už existujúcim profilom viackrát

takže sa snažím spustiť Puppeteer s už existujúcim profilom Chrome a funguje to, ale čo chcem urobiť je spustiť ten istý proces viackrát, čo vyvolá chybu

(node:12820) Varovanie: Neošetrené odmietnutie prisľubov: Chyba: Nepodarilo sa spustiť proces prehlia

Čítaj viac →

javascript - Puppeteer - „Požadovanie hlavného rámca príliš skoro!“

Vytvoril som funkciu pomocou Puppeteer, ktorá kontroluje, či je používateľ prihlásený. V podstate najprv kontroluje, či sú prehliadač a stránka otvorené, a potom hľadá selektor a v závislosti od toho, či bol objekt nájdený, vracia true/false.

export async function checkIfUserIsLoggedIn() { const logger = getLogger('checkIfUserIsLoggedIn()'); try { if (!page || !browser) { logger.info('page or browser is not open'); return false; } logger.info('pag

Čítaj viac →

javascript - Ako použiť Jest/Puppeteer na čakanie, kým bude element odstránený z DOM

Zhrnutie problému: Píšem niekoľko testovacích zostáv (používajúc Jest a Puppeteer) na automatizáciu testov domovskej stránky mojej aplikácie AngularJS. Jeden z testov, ktorý by som chcel automatizovať, simuluje stlačenie tlačidla používat

Čítaj viac →

javascript - zoznam užívateľských agentov prehliadača Puppeteer

Chcel by som načítať náhodný zoznam používateľských agentov z mojej predvolenej cesty, napríklad: 'agents.json', namiesto pridávania priamo len 1 používateľského agenta.

agents.json

["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36", &

Čítaj viac →

javascript - Odovzdanie triedy ako argument do page.evaluate v Puppeteer

V Puppeteer, page.evaluate vyhodí chybu, ak ako argument odovzdám triedu.

Funguje to však pre bežné objekty.

Existuje nejaké obchádzkové riešenie, aby to fungovalo?

const puppeteer = require("puppeteer"); (async () => { let browser = await pup

Čítaj viac →

node.js - Ako používať deklarácie TypeScript s puppeteer exposeFunction a webpack

Používam puppeteer a webpack v kombinácii pre projekt. Svoje súbory kompilujem do jedného balíka a potom pomocou metódy addScriptTag v puppeteer pridávam tento súbor do prehliadača. Okrem toho používam funkciu exposeFunction, aby som mohol odosielať/prijímať dá

Čítaj viac →

javascript - puppeteer: ako zachytiť blob request?

Existovala odpoveď o tom, ako riešiť sťahovanie blobu, odkaz je nasledovný. Ako zachytiť sťahovanie blobu generovaného na klientskej strane webovej stránky pomocou Puppeteer?

Ale chcem zachytiť tie požiadavky, ktorých iniciátorom bol skript v prehliadači. Zdá sa, že táto požiadavka je typu blob. Obraz je nasledovný:

Pri

Čítaj viac →

javascript - puppeteer: Ako zachytiť požiadavku ServiceWorker/WebWorker?

Existujú niektoré staré riešenia na vyriešenie tejto otázky, jedno je na GitHube, druhé je na StackOverfloow.

puppeteer má v nižšej verzii vlastnosť _client. Riešenie v nižšej verzii je nasledovné:

page._client.send('Network.setBypassServiceWorker', {

Čítaj viac →

Ako sa zbaviť chyby TypeScript v Puppeteer eval?

Mám jednoduchý skript pre puppeteer:

export async function inspectWebpage(source) { const b = await getBrowser() const p = await b.newPage() await p.goto(path) const script = fs.readFileSync( 'host/code/node/puppeteer/crawl.js', 'utf-8', ) await p.evaluate(script) let data = await p.evaluate(() => task.getWebpageData()) await b.close() return data }

Vidím to však zakaždým, keď to používam, a chcel by som sa toho zbaviť.

Čítaj viac →