← Zurück zur Liste

Playwright Automatic Test Common Pocket: Diese 3 Fehler sind am einfachsten zu kippen.

itadol5j

Playwright Automatic Test Common Pocket: Diese 3 Fehler sind am einfachsten zu kippen.

Playwright ist ein modernes Browser-Automatisierungstool, aber viele Leute treten in den Prozess ein. Und heute werde ich die drei häufigsten Fehler herausnehmen und Ihnen helfen, die Gruben zu vermeiden.

Fehler 1: Operationen ohne Warten auf das Laden des Elements

Dies ist die häufigste Grube. Viele Leute schreiben Codes, die gut aussehen, aber falsch laufen:element not foundIch weiß es nicht.

Fehler:

await page.click("#submit-btn");

Das Problem ist, dass die Seite möglicherweise nicht geladen wird und der Button nicht existiert.

Richtige Praxis:

await page.waitForSelector("#submit-btn");
await page.click("#submit-btn");

Oder auf modernere Weise:

await page.locator("#submit-btn").click();

Der Locator von Playwright wartet automatisch auf die Interaktion von Elementen, was ein großer Vorteil gegenüber Selen ist.

Fehler 2: Vernachlässigtes Warten auf dynamisches Laden

Viele Websites verwenden JavaScript dynamisch, um Inhalte zu rendern. Möglicherweise hat Ihr Skript mit dem Extrahieren von Daten begonnen, bevor der Inhalt geladen wurde.

Fehler:

await page.goto("https://example.com");
const text = await page.textContent(".dynamic-content");
console.log(text); // 可能是 null 或空字符串

Richtige Praxis:

await page.goto("https://example.com");
await page.waitForLoadState("networkidle");
const text = await page.textContent(".dynamic-content");
console.log(text);

Oder für spezifische Elemente:

await page.locator(".dynamic-content").waitFor({ state: "visible" });
const text = await page.textContent(".dynamic-content");

Fehler 3: Der Kontext und Seitenlebenszyklus des Browsers wurde nicht korrekt verarbeitet

Viele Leute erstellen Browserbeispiele und vergessen, sie auszuschalten, was zu Speicherverlusten führt. Oder den Browser zur falschen Zeit herunterfahren, wodurch das Skript zusammenbricht.

Fehler:

const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto("https://example.com");
// 忘记关闭浏览器

Richtige Praxis:

const browser = await chromium.launch();
try {
  const page = await browser.newPage();
  await page.goto("https://example.com");
  // 你的操作
} finally {
  await browser.close();
}

Oder auf elegantere Weise:

const browser = await chromium.launch();
const context = await browser.newContext();
const page = await context.newPage();

try {
  await page.goto("https://example.com");
  // 你的操作
} finally {
  await context.close();
  await browser.close();
}

Zusammenfassung

Der Kern von Playwright istWartenundLebenszyklusmanagementIch weiß es nicht. Denken Sie an diese drei Punkte:

  1. Warten Sie immer, bis Elemente geladen sind
  2. Dynamische Inhalte müssen sichtbar sein.
  3. Denken Sie daran, den Browser und den Kontext zu schließen

Auf diese Weise können 99% der häufigsten Fehler vermieden werden.