חדש בפיירפוקס - תמיכה בפאפטיר

09/08/2024

פיירפוקס 129 מגיע עם תמיכה מובנית ב Puppeteer וזה ממש כיף אם אתם כבר עובדים עם Puppeteer בשביל הבדיקות שלכם (ואם לא אז אולי תרצו להתחיל). בשביל ההתקנה אני יוצר פרויקט node חדש ומתקין את פאפטיר:

npm add puppeteer

ואחרי זה צריך להתקין את פייפרוקס במקום שפאפטיר יוכל למצוא אותו ולכן אנחנו מתקינים אותו דרך כלי ההתקנה של פאפטיר עם הפקודה:

npx puppeteer browsers install firefox

(גם אם יש לכם כבר פיירפוקס על המחשב).

אחרי זה אפשר לכתוב את הסקריפט. לדוגמה התוכנית הבאה מתחברת ל duckduckgo, מחפשת שם את המילה firefox ומדפיסה למסך את השמות של 10 התוצאות שיופיעו על העמוד:

// file: demo.mjs

import puppeteer from "puppeteer";

const browser = await puppeteer.launch({
  browser: "firefox",
  headless: true,
});

const page = await browser.newPage();
page.on('console', msg => {
  console.log(`[console] ${msg.type()}: ${msg.text()}`);
});
await page.goto('https://www.duckduckgo.com');
await page.type('input[name=q]', 'firefox');
await page.click('button[type=submit]');
await page.waitForSelector('a[data-testid=result-title-a]');

const titles = await page.$$eval('a[data-testid=result-title-a]', elements => {
  return elements.map(element => element.textContent.trim());
});
console.log(titles);
await browser.close();

שימו לב לסיומת הקובץ mjs כדי ש node לא יתלונן על ה import-ים.

התמיכה בפיירפוקס היא תוספת מבורכת לפאפטיר שעד עכשיו עבד רק עם כרום, ואולי פותחת את הדלת גם לתמיכה בו בדפדפנים נוספים כמו ספארי ו Edge.