جافاسكريبت - Puppeteer انتظار تحميل الصفحة و setTimeout لا يعمل في دوال Firebase السحابية

أحاول تحميل صفحة أستضيفها على Firebase وتحويلها إلى PDF باستخدام Puppeteer. تعمل بشكل جيد مع صفحة HTML فقط. الآن أحصل على البيانات من Firebase وأعرضها في صفحتي، لذلك أحتاج إلى انتظار تحميل الصفحة بالكامل قبل أن أتمكن من إنشاء ملف PDF. هذا يعمل ب

اقرأ أكثر →

تايب سكريبت - كيف تتحقق مما إذا كانت صفحة Puppeteer في حالة التنقل حاليًا؟

أقوم بكتابة بعض الغلاف فوق Puppeteer. لدي دالة عامة "انقر"، ودالة "getHtml":

class Page { .... async click(selector: string) { await this.context.evaluate((querySelector, text) => { const elem = document.querySelector(querySel

اقرأ أكثر →

تايبسكريبت - canvas.getContext("webgl") يعيد null عند الاختبار باستخدام puppeteer و jest

أنا أحاول كتابة اختبارات لقطات لمُحرك WebGL الذي قمت بكتابته باستخدام Jest وPuppeteer وjest-image-snapshot. الطريقة التي أختبر بها هذا هي أنني كتبت تطبيق React للاختبار يحتوي على اللوحة كما يلي:

export function TestApp(props: { width: number; height: number }): JSX.Element { return ( <div id="drawing" style={{ ...props }} > <DrawingCanvas canvasProps={props} renderBehavior={RenderBehavior.Wet} /> </div> ); }

اقرأ أكثر →

تايب سكريبت - محاكاة Puppeteer للاختبار

لقد كنت أعمل على كود Puppeteer لأخذ لقطة شاشة لموقع ويب، وكتابة كود اختبار وحدات باستخدام Jest. الكود الخاص بي يشبه هذا: index.ts

import puppeteer from "puppeteer"; export async function takeScreenshot() { const browser = await puppeteer.launch({ headless: true }); try { const page = await browser.newPage(); const url = "https://someurl.com/somepage"; await page.goto(url); await page.waitForSelector("test");

اقرأ أكثر →

جافاسكريبت - كيف تأخذ لقطة شاشة بصيغة RGBA باستخدام Puppeteer؟

أنا أعمل على تطبيق ويب لمقارنة الصور باستخدام Puppeteer وإليكم ما أحاول القيام به:

  1. افتح صفحة Puppeteer، وانتقل إلى صفحة عرض بها مكون ويب model-viewer (واجهة برمجة رسومات الويب من جوجل).
  2. عرض شيء باستخدام عارض النموذج
  3. التقط لقطة شاشة rgba بعد الانتهاء من العرض (استخدم page.screenshot())
  4. أغلق الصفحة.
  5. خذ لقطة الشاشة كوسيط لواجهة برمجة تطبيقات مقارنة الصور (يجب أن يكون الإدخال إما من نوع Buffer في Node.js أو ملف PNG)

كل شيء يع

اقرأ أكثر →

جافاسكريبت - إرسال رسالة على ديسكورد عبر بوبتيير (بدون بوت، بدون تطبيق)

أنا أكتب سكريبت Puppeteer يفتح Discord Web، يسجل الدخول (خطوة يدوية للتحقق من الكابتشا والتفويض)، يذهب إلى قناة ويدخل رسالة في نموذج الرسالة، وأجد صعوبة في إرسالها.

هذا مختلف عن جميع أسئلة وأجوبة الموجودة، لأنه ليس عبر ويب هوك أو تطبيق ديسكورد.

يبدو أن التعقيد يكمن في أن العنصر الذي يتم إدخال الرسالة فيه هو div قابل للتحرير بالمحتوى.

احتمال آخر هو أن محاكاة مفتاح Enter تعمل، لكنها لا ترسل أي شيء لأن تعيين innerText على العنصر div لا يجعل النظام يسجل أن هذه هي الرسالة المراد

اقرأ أكثر →

تايب سكريبت - كيفية تجميع Puppeteer للنشر الإنتاجي باستخدام Webpack؟

أنا أقوم بإنشاء واجهة برمجة تطبيقات Node باستخدام Express والتي ستقوم بإنشاء ملف PDF باستخدام Puppeteer لعنوان URL معين. كيف يمكنني حزم تطبيقي للإنتاج باستخدام Webpack؟ لا أرغب في تثبيت Puppeteer و Express بشكل عالمي على الخادم الذي سأستضيفه عليه ولا أرغب في تنفيذ npm install

اقرأ أكثر →

تايب سكريبت - المتصفح غير معرف لـ ts-jest و puppeteer

أحاول إنشاء اختبارات اللقطة باستخدام puppeteer لتطبيقي الذي أنشأته بـ typescript create react app. الاختبارات العادية باستخدام jest تعمل بشكل جيد، ولكن بمجرد أن أحاول إنشاء اللقطات باستخدام المتصفح وأضطر لاستخدام المتغير browser داخل ملف .test.ts الخاص بي، يتم إعلامي بأن browser غير معرف.

يبدو أنني لا أستطيع تجاوز هذه المشكلة رغم أنني كنت أحاول حل هذه المسألة لساعات.

للتوضيح،

اقرأ أكثر →

node.js - Puppeteer: خطأ في البروتوكول: فشل الانتظار للمحدد: خطأ في البروتوكول: يجب أن يكون الحَرْف تابعاً لنفس عالم جافاسكربت ككائن الهدف

لقد أنشأت هذه الدالة:

async function sendRequest(page: Page, url: string) { await Promise.all([ page.waitForNavigation(), page.goto(url), page.waitForSelector("div#header"), ]); }

عندما أستخدم هذه الوظيفة، يقوم NodeJS بإلقاء رسالة الخطأ التالية:

ProtocolError: Waiting for selector `div#header` failed: Protocol error (Runtime.callFunctionOn): Argument should belong to the same JavaScript world as target object at /home/m

اقرأ أكثر →

node.js - Puppeteer: كيف يمكن تحميل HTML فقط بدون CSS/JS/الخطوط/الصور؟

أنا أستخدم Puppeteer لجمع بعض البيانات وأحتاج إلى الانتقال إلى العديد من الصفحات في وقت قصير نسبيًا. بعد الملاحظة، لاحظت أن هذا غير فعال جدًا لأنني مهتم فقط بالبيانات في ملف العلامات بينما الصفحة كاملة بكل الصور والخطوط وما إلى ذلك بطيئة جدًا. لذا سيكون من الجيد إذا كان هناك طريقة لتخطي أنواع ا

اقرأ أكثر →