אני משתמש ב-puppeteer וב-webpack בשילוב עבור פרויקט. אני מקמפל את הקבצים שלי לקובץ אחד, ואז בעזרת המתודה addScriptTag ב-puppeteer, מוסיף את הקובץ הזה לדפדפן. בנוסף, אני משתמש בפונקציונליות exposeFunction כך שאוכל לשלוח/לקבל נתונים מהדפדפן ל-nodejs, יותר ספציפית
קרא עוד →
היה תשובה לגבי איך לפתור הורדת blob, הקישור כדלקמן. איך לעצור הורדות של blob שנוצר בצד הלקוח של האתר דרך puppeteer?
אבל אני רוצה ליירט את הבקשות האלה שהיוזם שלהן היה סקריפט בדפדפן. נראה שהבקשה הזו היא מסוג blob. התמונה כדלקמן:
כאשר עוקבים אחרי הדוגמה שלמעלה, הבקשה של ה-blob לא נלכדה, אז איך אני תופס את הבקשה הזו?
ה
קרא עוד →
יש כמה פתרונות ישנים לפתרון השאלה הזו, אחד מהם בגיטהאב, והשני ב-StackOverflow.
puppeteer יש לו את המאפיין _client בגרסה נמוכה יותר. הפתרון בגרסה נמוכה הוא כדלקמן:
page._client.send('Network.setBypassServiceWorker', {bypass: true})גרסת
קרא עוד →
יש לי סקריפט פופית'ר פשוט:
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 }אני רואה את זה בכל פעם שאני משתמש בזה, ורוצה להיפטר ממנו.
Cannot find name 'task'. קרא עוד →
מקור הבעיה: אני לא יכול להשתמש ב-Javascript כמות שהוא כי גרסת Node.Js של Firebase Functions עדיין לא תומכת ב-Async/Await. אז הנחתי את זה ב-Typescript ועכשיו מנסים להמיר ל-commonJs.
אז אני עושה.
tsc -p config.json, שמפיקה לאחר מכן את השגיאות הללו.
../../../node_m קרא עוד →
אז אני עובד על תכונה באפליקציה שלי שמבטלת גלילה על ידי מקש החץ בגוף כשהתפריט פתוח, ומשאירה את ההתנהגות כפי שהיא אחרת.
אני מנסה לבדוק את ההתנהגות הזו ב-Puppeteer, אבל אני לא מצליח לגרום לחלון לגלול כאשר אני לוחץ על החץ למטה. הנה כמה דוגמאות למה שאני עושה הן במימוש והן בבדיקות שלי:
const disableArrowScroll = (event: קרא עוד →
אני מנסה לשנות את ערך ה-mat-slider באופן תכנותי עם puppeteer אבל אני לא מצליח לגרום לזה לעבוד.
זה מה שניסיתי:
async function changeSliderValue(page:Page){ try { const thumb = await page.$('.mat-slider-thumb'); const position = await thumb.boundingBox(); await page קרא עוד →אני מנסה להשתמש ב-node-html-to-image ב-deno:
import nodeHtmlToImage from "npm:node-html-to-image"; nodeHtmlToImage({ output: './image.png', html: '<html><body>Hello world!</body></html>' }) .then(() => console.log('The image was created successfully!'))deno run --allow-env --allow-read --allow-write that-file.ts גורם לשגיאה זו:
error: Uncaught Error: Unable to launch browser, err קרא עוד →
אם אני מנסה להשתמש ב-Puppeteer עם TypeScript ו-esModuleInterop=true מוגדר ב-tsconfig.json אני מקבל שגיאה שאומרת
puppeteer.launch איננה פונקציה
אם אני מנסה לייבא את Puppeteer עם
import * as puppeteer from "puppeteer";עכש
קרא עוד →
יש לי את הפונקציה הבאה ב-TypeScript שמניחה שדפדפן Chrome כבר הופעל באמצעות Puppeteer. את התיעוד עבור פונקציות Fetch שבהן משתמשים למטה ניתן למצוא כאן.
async function modify(client: CDPSession) { client.on('Fetch.requestPaused', async ({ request קרא עוד →