何だと思う? Microsoft は時計仕掛けのようにPlaywrightの新しいバージョンをリリースしました。バグ修正や API の変更を追い続けるのはフルタイムの仕事のように感じられるかもしれませんが、優れた機能を見逃すのは簡単です。でも心配しないでください。私たちがあなたの背中を支えます!
Playwright の最新アップデートを巡る旅にご参加ください。私たちは、あなたが常に最新情報を入手し、新しいトリックを習得し、優れたスキルで同僚を驚かせるお手伝いをします。飛び込む準備はできていますか?さあ行こう!
いくつかの素晴らしい例を通じて、Playwright の最新の更新を直接確認したい場合は、 Playwright YouTube チャンネルにアクセスし、毎月の「What's New in Playwright」ビデオをご覧ください。
Playwright に導入された最新の機能を調べて、それらを最大限に活用する方法を見てみましょう 🔍
FirefoxUserPrefs
フィールドが、 browserType.launchPersistentContext(userDataDir, options)
のoptions
オブジェクト引数に追加されました。このメソッドは、 userDataDir
にある永続ストレージを使用してブラウザを起動し、ブラウザ コンテキスト インスタンスを返します。 firefoxUserPrefs
は、 about:config
で指定された Firefox ユーザー設定を含むオブジェクトです。reason
フィールドが、 page.close(options)
、 browserContext.close(options)
、およびbrowser.close(options)
メソッドのoptions
オブジェクト引数に追加されました。 reason
はclose()
呼び出しの結果として中断されたすべての操作によって報告されるエラー メッセージを含む文字列です。
firefoxUserPrefs
カスタム構成を必要とする Firefox ユーザーに特化していますが、 reason
フィールドはより汎用的なものです。以下のスニペットのように使用します。
await browser.close({ reason: "Scraping process completed!" })
browser.close()
によって中断されたすべての保留中の操作は、「スクレイピング プロセスが完了しました!」というメッセージを含む JavaScript エラーをスローするようになりました。
この機能の使い方は?ターゲット ページが重要なタスクの真っ最中であると想像してください。たとえば、データが取得されるのを待っているとします。突然予期しないエラーが表示され、ブラウザを正常に閉じる必要に迫られます。
reason
がなければ、進行中のタスクのリソースが解放されたかどうか、また操作がなぜ中断されたのかが分からなくなるでしょう。何が起こっているのかわからないのは、特に自動化された Web スクレイピング スクリプトのログのエラーの理由を調査する任務を負っている場合には問題です。そこで「理由」フィールドが役に立ち、何日もかかる骨の折れる調査が不要になります。
素晴らしいですね、この API の導入により、デバッグが非常に簡単になります。 🚀
Playwright Test Generator ツールは、ブラウザでアクションを実行すると自動的にテストを作成するように設計されており、次のボタンが提供されるようになりました。
expect(locator).toBeVisible()
命令を生成して、選択した要素が表示されていることを確認します。expect(locator).toContainText()
命令を介して特定のテキストが含まれていることを確認します。expect(locator).toHaveValue()
命令を追加して、select 要素に特定の値があることを確認します。
これを想像してみてください。あなたは、動的な Web ページ用の Web スクレイパーを構築するなど、複雑なタスクに取り組んでいます。ページ上のいくつかの要素が表示され、特定のテキストまたは値が含まれていることを確認する必要があるとします。それには、いくつかの複雑なロジックが必要になります 👎 。しかし、ちょっと待ってください。この新しいアップデートのおかげで、テスト ジェネレーター ツールを数回クリックするだけですべてが完了します。
この新機能の実際の動作を次の GIF でご覧ください。
このテスト ジェネレーターの操作により、次の TypeScript テストが生成されます。
import { test, expect } from '@playwright/test'; test('test', async ({ page }) => { await page.goto('https://playwright.dev/'); await expect(page.getByRole('banner')).toContainText('Get started'); });
✨ とても魔法のようですね。 ✨
Playwright のメジャー アップデートの壮大な伝統に従って、サポートされるブラウザのラインナップが新しいバージョンで更新されました。
しかしそれだけではありません! Playwright の現在のバージョンは、次の安定したチャネルに対しても優れていることが証明されています。
グーグルクローム119
マイクロソフトエッジ119
download.path()
とdownload.createReadStream()
メソッドは、ダウンロード操作が失敗するかキャンセルされるとエラーをスローするようになりました。
Playwright Docker イメージには Node.js v20 が付属するようになりました。
新しいアップデートを見逃したくないですか? Playwrightリリース ノートページに注目してください。
さて、あなたはきっとこう考えているに違いありません。「これらの素晴らしい新機能を手に入れるにはどうすればよいでしょうか?」さて、Playwright を最新バージョンに更新してみましょう。
以下のコマンドを実行するだけです。
npm install @playwright/test@latest
また、次のようにブラウザ インスタンスをアップグレードすることを忘れないでください。
npx playwright install
ほら! Playwright の最新アップデートを入手する準備は完了です。
Playwright のバージョンがどれほど最新であっても、ほとんどのサイトは自動化されたスクリプトを検出してブロックすることができます。しかし、どうしてそんなことが可能なのでしょうか? Playwright のようなライブラリによって制御されるヘッドレス ブラウザには、ボット対策ソリューションによって危険信号とみなされる特別な構成と設定が含まれます。その結果は?即時ブロック、または CAPTCHA の迷惑な表示やその他の厄介な障害物。
ここで、「これを回避するにはブラウザの設定を調整するだけではだめなのでしょうか?」と考えているかもしれません。
そんなに速くないよ、坊や!これは、少なくとも次の 3 つの理由により、良いアイデアとは言えません。
問題はブラウザ自動化ライブラリ自体にあるのではなく (Playwright は素晴らしい! 🤘)、むしろ制御下にあるブラウザにあります。解決策は、次のような高度にカスタマイズ可能なブラウザです。
信じられないかもしれませんが、それは遠いところの蜃気楼ではありません。それは本当であり、まさにBright Data のスクレイピング ブラウザソリューションのすべてです。
Playwright はブラウザ自動化ライブラリのロックスターであり、クリスマスイブにサンタクロースがプレゼントを届けるのと同じように、Microsoft は毎月メジャーな新しいアップデートをリリースします。ここでは、Playwright の最新のアップデートを最大限に活用する方法を説明しましたが、正直に言って、高度なボット検出テクノロジを備えたサイトから魔法のようにユーザーが見えなくなるわけではありません。
Bright Dataの Scraping Browser ソリューションでその弾丸を回避し、自動化されたスクリプトを使用して、インターネットをどこにいても誰もが利用できる公共の場所にするという私たちの使命に参加してください。
次回まで、自由にウェブを探索し続けてください。