javascript - Puppeteer: En enklare metod för att hantera sidor som skapas vid klick på a[target="_blank"]; vänta på laddning och inkludera tidsgränser

Översikt

Jag letar efter ett enklare sätt att hantera klick på länkar som öppnar nya sidor (som target="_blank" anchor-taggar).

Här betyder handtag:

  • hämta det nya sidobjektet
  • vänta på att den nya

    Läs mer →

javascript - hur man startar puppeteer med en redan existerande profil flera gånger

så jag försöker starta puppeteer med en redan befintlig chrome-profil och det fungerar, men vad jag vill göra är att starta samma process flera gånger vilket orsakar ett fel

(node:12820) UnhandledPromiseRejectionWarning: Fel: Misslyckades med att starta w

Läs mer →

javascript - Puppeteer - "Begär huvudramen för tidigt!"

Jag har skapat en funktion med Puppeteer som kontrollerar om användaren är inloggad. I princip kontrollerar den först om webbläsare och sida är öppna och sedan letar efter en selektor och beroende på om objektet hittades returnerar den 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

Läs mer →

javascript - Hur man använder Jest/Puppeteer för att vänta tills ett element har tagits bort från DOM

Sammanfattning av problemet: Jag skriver flera testsuiter (med Jest och Puppeteer) för att automatisera tester av min AngularJS-apps hemsida. Ett av testerna jag vill automatisera är en användare som trycker på en knapp på sidan som tar b

Läs mer →

javascript - Puppeteer webbläsarens useragentlista

Jag skulle vilja ladda en slumpmässig lista över user-agenter från min standardplats, till exempel: 'agents.json' istället för att lägga till en direkt och endast en 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&

Läs mer →

javascript - Skicka klass som ett argument till page.evaluate i Puppeteer

I Puppeteer kastar page.evaluate ett fel om jag skickar en klass som ett argument.

Det fungerar dock för vanliga föremål.

Finns det någon lösning för att få det att fungera?

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

Läs mer →

node.js - Hur man använder TypeScript-deklarationer med puppeteer exposeFunction och webpack

Jag använder puppeteer och webpack i kombination för ett projekt. Jag kompilerar mina filer till ett enda paket, och sedan använder jag metoden addScriptTag i puppeteer för att lägga till den filen i webbläsaren. Dessutom använder jag funktionaliteten exposeFun

Läs mer →

javascript - puppeteer: hur avbryter man blob-förfrågan?

Det fanns ett svar om hur man löser nedladdning av blob, länken är som följer. Hur fångar man nedladdningar av blob genererade på klientsidan av en webbplats genom puppeteer?

Men jag vill avlyssna de förfrågningar som initiatorn var ett skript i webbläsaren. Det verkar som att denna förfrågan är av typen blob. Bilden är som följer:

Läs mer →

javascript - puppeteer: Hur avlyssnar man en ServiceWorker/WebWorker-förfrågan?

Det finns några gamla lösningar för att lösa denna fråga, en finns på GitHub, den andra finns på Stack Overflow.

puppeteer har _client-egenskapen i en lägre version. Lösningen i en lägre version är som följer:

page._client.send('Network.setBypassServi

Läs mer →

Hur blir man av med TypeScript-fel i Puppeteer eval?

Jag har ett enkelt puppeteer-skript:

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 }

Jag ser detta varje gång jag använder det och skulle vilja bli av med det.

Läs mer →