Playwright自動テスト共通ポケット:この3つの間違いは、上回る最も簡単です。
Playwright自動テスト共通ポケット:この3つの間違いは、上回る最も簡単です。
Playwrightは、現代のブラウザの自動化ツールですが、多くの人がプロセスにステップアップしています。 そして今日、私は3つの最も一般的な間違いをとり、私はあなたがピットを避けるのを助けるつもりです。
エラー1:要素の読み込みを待っていない操作
これは最も一般的なピットです。 たくさんの人がコードを書いていますが、間違ったコードを実行します。element not foundお問い合わせ
間違い:
await page.click("#submit-btn");
問題はページが読み込まれず、ボタンが存在しないことです。
正しい練習:
await page.waitForSelector("#submit-btn");
await page.click("#submit-btn");
またはより現代的な方法で:
await page.locator("#submit-btn").click();
Playwrightのロケータは、Seleniumよりも大きな利点である、相互作用する要素を自動的に待機します。
エラー2:動的ロードを待ち望んでいる
多くのウェブサイトは、JavaScriptを動的に使用してコンテンツをレンダリングします。 コンテンツが読み込まれる前に、スクリプトがデータを抽出し始めることがあります。
間違い:
await page.goto("https://example.com");
const text = await page.textContent(".dynamic-content");
console.log(text); // 可能是 null 或空字符串
正しい練習:
await page.goto("https://example.com");
await page.waitForLoadState("networkidle");
const text = await page.textContent(".dynamic-content");
console.log(text);
または特定の要素の場合:
await page.locator(".dynamic-content").waitFor({ state: "visible" });
const text = await page.textContent(".dynamic-content");
エラー3:ブラウザのコンテキストとページライフサイクルが正しく処理されていない
多くの人がブラウザの例を作成し、それらをオフにすることを忘れないでください。 ブラウザを間違った時間にシャットダウンしたり、スクリプトが崩壊する原因。
間違い:
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto("https://example.com");
// 忘记关闭浏览器
正しい練習:
const browser = await chromium.launch();
try {
const page = await browser.newPage();
await page.goto("https://example.com");
// 你的操作
} finally {
await browser.close();
}
またはより優雅な方法で:
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();
}
インフォメーション
Playwrightのコアはウエディングそして、ライフサイクル管理お問い合わせ これらの3つのポイントを覚えておいてください。
- 要素がロードされるまで常に待ちます
- 動的コンテンツは表示する必要があります。
- ブラウザとコンテキストを閉じることを忘れないでください
このように、一般的な間違いの99%は避けることができます。