أبحث عن طريقة أبسط للتعامل مع النقر على الروابط التي تفتح صفحات جديدة (مثل علامات التثبيت target="_blank").
هنا تعني كلمة handle:
لذا أنا أحاول إطلاق Puppeteer باستخدام ملف تعريف Chrome موجود بالفعل وقد نجح الأمر، لكن ما أريد القيام به هو تشغيل نفس العملية عدة مرات مما يُؤدي إلى ظهور خطأ
(node:12820) تحذير رفض الوعد غير المعالج: خطأ: فشل في تشغيل عملية المتصفح! [0311/152606.490:خطأ:
اقرأ أكثر →
لقد أنشأت دالة باستخدام Puppeteer تتحقق مما إذا كان المستخدم قد سجل الدخول. في الأساس، أولاً تتحقق مما إذا كان المتصفح والصفحة مفتوحين، ثم تبحث عن المحدد وبناءً على ما إذا تم العثور على العنصر، تعيد 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('page or browser is open'); awai
اقرأ أكثر →
ملخص المشكلة: أنا أكتب عدة مجموعات اختبار (باستخدام Jest و Puppeteer) لأتمتة اختبارات صفحة البداية لتطبيقي AngularJS. أحد الاختبارات التي أود أتمتتها هو قيام المستخدم بالضغط على زر في الصفحة يحذف عنصرًا في DOM. للأسف، يُستخدم هذا العنصر ل
اقرأ أكثر →
أود تحميل قائمة عشوائية من وكلاء المستخدم من المسار الافتراضي الخاص بي، على سبيل المثال: 'agents.json' بدلاً من إضافة وكيل مستخدم واحد فقط ومباشر.
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.0 (X11; اقرأ أكثر →
في Puppeteer، يقوم page.evaluate بإطلاق خطأ إذا مررت بفئة كوسيط.
يعمل مع الأشياء العادية على أي حال.
هل هناك أي حل بديل لجعله يعمل؟
const puppeteer = require("puppeteer"); (async () => { let browser = await puppeteer.launch({ headless: tru اقرأ أكثر →
أنا أستخدم puppeteer و webpack معًا في مشروع. أقوم بتجميع ملفاتي في حزمة واحدة، ثم باستخدام طريقة addScriptTag على puppeteer، أضيف هذا الملف إلى المتصفح. بالإضافة إلى ذلك، أنا أستخدم وظيفة exposeFunction حتى أتمكن من إرسال/استقبال البيانات من المتصفح إلى nodejs
اقرأ أكثر →
كان هناك إجابة حول كيفية حل تحميل blob، الرابط كما يلي. كيف يمكن اعتراض تنزيلات blob التي يتم إنشاؤها في جانب العميل من الموقع عبر Puppeteer؟
لكنني أريد اعتراض تلك الطلبات التي كان منشؤها سكريبت في المتصفح. يبدو أن هذا الطلب من نوع blob. الصورة كما يلي:
عند اتباع المثال أعلاه، لم يتم اعتراض طلب البلوبي، فكيف يمكنني اعترا
اقرأ أكثر →
هناك بعض الحلول القديمة لحل هذا السؤال، أحدها موجود على جيتهاب، والآخر موجود على ستاك أوفرفلو.
لـ puppeteer خاصية _client في الإصدارات القديمة. الحل في الإصدارات القديمة كما يلي:
page._client.send('Network.setBypassServiceWorker', {bypass: true}) اقرأ أكثر →
لدي سكربت بسيط باستخدام 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 }أرى هذا في كل مرة أستخدمها، وأود التخلص منه.
Cannot find name 'task'.ts(23 اقرأ أكثر →