javascript - Puppeteer: Mod mai simplu de a gestiona paginile create la clic pe a[target="_blank"]; așteaptă încărcarea și include timpi de expirare

Prezentare generală

Caut o modalitate mai simplă de a gestiona clicurile pe linkuri care deschid pagini noi (cum ar fi etichetele anchor cu target="_blank").

Aici, handle înseamnă:

javascript - cum să lansezi Puppeteer cu un profil deja existent de mai multe ori

așa că încerc să lansez Puppeteer cu un profil Chrome deja existent și funcționează, dar ceea ce vreau să fac este să lansez același proces de mai multe ori, ceea ce aruncă o eroare

(node:12820) UnhandledPromiseRejectionWarning: Eroare: Eșec la lansarea p

Citeste mai mult →

javascript - Puppeteer - „Solicitarea cadrului principal prea devreme!”

Am creat o funcție folosind Puppeteer care verifică dacă utilizatorul este autentificat. Practic, la început verifică dacă browserul și pagina sunt deschise și apoi caută un selector și, în funcție de faptul dacă elementul a fost găsit, returnează true/false.

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

Citeste mai mult →

javascript - Cum să folosești Jest/Puppeteer pentru a aștepta până când un element a fost eliminat din DOM

Rezumatul problemei: Scriu mai multe seturi de teste (folosind Jest și Puppeteer) pentru a automatiza testele paginii principale a aplicației mele AngularJS. Unul dintre testele pe care aș dori să le automatizez este ca un utilizator să a

Citeste mai mult →

javascript - lista useragent-urilor browser-ului Puppeteer

Aș dori să încarc o listă aleatorie de user-agents din calea mea implicită, de exemplu: 'agents.json', în loc să adaug direct și doar un singur user-agent.

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", "Mozilla/5

Citeste mai mult →

javascript - Trecerea unei clase ca argument pentru page.evaluate în Puppeteer

În Puppeteer, page.evaluate aruncă o eroare dacă trec o clasă ca argument.

Totuși, funcționează pentru obiectele obișnuite.

Există vreo soluție alternativă pentru a-l face să funcționeze?

const puppeteer = require("puppeteer"); (async () => {

Citeste mai mult →

node.js - Cum să folosești declarațiile TypeScript cu puppeteer exposeFunction și webpack

Folosesc puppeteer și webpack în combinație pentru un proiect. Îmi compilez fișierele într-un singur bundle, iar apoi, folosind metoda addScriptTag din puppeteer, adaug acel fișier în browser. În plus, folosesc funcționalitatea exposeFunction astfel încât să po

Citeste mai mult →

javascript - puppeteer: cum să interceptezi o cerere blob?

A existat un răspuns despre cum să rezolvi descărcarea blob-ului, linkul este următorul. Cum să interceptăm descărcările de blob generate pe partea de client a unui site web prin Puppeteer?

Dar vreau să interceptez acele cereri al căror inițiator a fost un script din browser. Se pare că această cerere este de tip blob. Imaginea este următoarea:

Citeste mai mult →

javascript - puppeteer: Cum să interceptezi cererea unui ServiceWorker/WebWorker?

Există câteva soluții vechi pentru a rezolva această problemă, una este pe GitHub, cealaltă este pe StackOverflow.

puppeteer are proprietatea _client în versiunea mai veche. Soluția în versiunea mai veche este următoarea:

page._client.send('Network.se

Citeste mai mult →

Cum să scapi de eroarea TypeScript în eval-ul din Puppeteer?

Am un script simplu de 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 }

Văd acest lucru de fiecare dată când îl folosesc și aș vrea să scap de el.

Citeste mai mult →