paint-brush
最新のアップデート後に Playwright を最大限に活用する方法@brightdata
1,894 測定値
1,894 測定値

最新のアップデート後に Playwright を最大限に活用する方法

Bright Data5m2023/12/17
Read on Terminal Reader

長すぎる; 読むには

何だと思う? Microsoft は時計仕掛けのように Playwright の新しいバージョンをリリースしました。バグ修正や API 変更を追い続けるのはフルタイムの仕事のように感じられるかもしれませんが、優れた機能を見逃すのは簡単です。でも心配しないでください、私たちはあなたの背中を支えています!私たちは、あなたが常に最新情報を入手し、新しいトリックを習得し、優れたスキルで同僚を驚かせるお手伝いをします。飛び込む準備はできていますか?さあ行こう!
featured image - 最新のアップデート後に Playwright を最大限に活用する方法
Bright Data HackerNoon profile picture
0-item
1-item
2-item
3-item
4-item


何だと思う? Microsoft は時計仕掛けのようにPlaywrightの新しいバージョンをリリースしました。バグ修正や API の変更を追い続けるのはフルタイムの仕事のように感じられるかもしれませんが、優れた機能を見逃すのは簡単です。でも心配しないでください。私たちがあなたの背中を支えます!


Playwright の最新アップデートを巡る旅にご参加ください。私たちは、あなたが常に最新情報を入手し、新しいトリックを習得し、優れたスキルで同僚を驚かせるお手伝いをします。飛び込む準備はできていますか?さあ行こう!


Playwright 最新アップデート (v1.04)

いくつかの素晴らしい例を通じて、Playwright の最新の更新を直接確認したい場合は、 Playwright YouTube チャンネルにアクセスし、毎月の「What's New in Playwright」ビデオをご覧ください。

Playwright に導入された最新の機能を調べて、それらを最大限に活用する方法を見てみましょう 🔍

新しい API

  • FirefoxUserPrefsフィールドが、 browserType.launchPersistentContext(userDataDir, options)optionsオブジェクト引数に追加されました。このメソッドは、 userDataDirにある永続ストレージを使用してブラウザを起動し、ブラウザ コンテキスト インスタンスを返します。 firefoxUserPrefsは、 about:configで指定された Firefox ユーザー設定を含むオブジェクトです。
  • reasonフィールドが、 page.close(options)browserContext.close(options) 、およびbrowser.close(options)メソッドのoptionsオブジェクト引数に追加されました。 reasonclose()呼び出しの結果として中断されたすべての操作によって報告されるエラー メッセージを含む文字列です。


firefoxUserPrefsカスタム構成を必要とする Firefox ユーザーに特化していますが、 reasonフィールドはより汎用的なものです。以下のスニペットのように使用します。


 await browser.close({ reason: "Scraping process completed!" })


browser.close()によって中断されたすべての保留中の操作は、「スクレイピング プロセスが完了しました!」というメッセージを含む JavaScript エラーをスローするようになりました。


この機能の使い方は?ターゲット ページが重要なタスクの真っ最中であると想像してください。たとえば、データが取得されるのを待っているとします。突然予期しないエラーが表示され、ブラウザを正常に閉じる必要に迫られます。


reasonがなければ、進行中のタスクのリソースが解放されたかどうか、また操作がなぜ中断されたのかが分からなくなるでしょう。何が起こっているのかわからないのは、特に自動化された Web スクレイピング スクリプトのログのエラーの理由を調査する任務を負っている場合には問題です。そこで「理由」フィールドが役に立ち、何日もかかる骨の折れる調査が不要になります。


素晴らしいですね、この API の導入により、デバッグが非常に簡単になります。 🚀

テスト生成ツールの新機能

Playwright Test Generator ツールは、ブラウザでアクションを実行すると自動的にテストを作成するように設計されており、次のボタンが提供されるようになりました。


  • Assert Visibility : expect(locator).toBeVisible()命令を生成して、選択した要素が表示されていることを確認します。
  • Assert text : 選択した HTML 要素に、 expect(locator).toContainText()命令を介して特定のテキストが含まれていることを確認します。
  • Assert value : テストにexpect(locator).toHaveValue()命令を追加して、select 要素に特定の値があることを確認します。


これを想像してみてください。あなたは、動的な Web ページ用の Web スクレイパーを構築するなど、複雑なタスクに取り組んでいます。ページ上のいくつかの要素が表示され、特定のテキストまたは値が含まれていることを確認する必要があるとします。それには、いくつかの複雑なロジックが必要になります 👎 。しかし、ちょっと待ってください。この新しいアップデートのおかげで、テスト ジェネレーター ツールを数回クリックするだけですべてが完了します。


この新機能の実際の動作を次の GIF でご覧ください。


PlaywrightTest ジェネレーター ツール


このテスト ジェネレーターの操作により、次の 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 のメジャー アップデートの壮大な伝統に従って、サポートされるブラウザのラインナップが新しいバージョンで更新されました。

  • クロム 120.0.6099.28
  • モジラ Firefox 119.0
  • ウェブキット 17.4


しかしそれだけではありません! Playwright の現在のバージョンは、次の安定したチャネルに対しても優れていることが証明されています。

  • グーグルクローム119

  • マイクロソフトエッジ119


その他のマイナーな変更

  • download.path()download.createReadStream()メソッドは、ダウンロード操作が失敗するかキャンセルされるとエラーをスローするようになりました。

  • Playwright Docker イメージには Node.js v20 が付属するようになりました。


新しいアップデートを見逃したくないですか? Playwrightリリース ノートページに注目してください。

Playwright を更新する方法

さて、あなたはきっとこう考えているに違いありません。「これらの素晴らしい新機能を手に入れるにはどうすればよいでしょうか?」さて、Playwright を最新バージョンに更新してみましょう。


以下のコマンドを実行するだけです。

npm install @playwright/test@latest

また、次のようにブラウザ インスタンスをアップグレードすることを忘れないでください。

npx playwright install


ほら! Playwright の最新アップデートを入手する準備は完了です。

新しい劇作家でも昔と同じ問題を抱えている…

Playwright のバージョンがどれほど最新であっても、ほとんどのサイトは自動化されたスクリプトを検出してブロックすることができます。しかし、どうしてそんなことが可能なのでしょうか? Playwright のようなライブラリによって制御されるヘッドレス ブラウザには、ボット対策ソリューションによって危険信号とみなされる特別な構成と設定が含まれます。その結果は?即時ブロック、または CAPTCHA の迷惑な表示やその他の厄介な障害物


ここで、「これを回避するにはブラウザの設定を調整するだけではだめなのでしょうか?」と考えているかもしれません。


そんなに速くないよ、坊や!これは、少なくとも次の 3 つの理由により、良いアイデアとは言えません。


  1. これは終わりのないいたちごっこです。ボット対策は進化しており、今日の回避策は明日には古いニュースになってしまいます。
  2. 最も洗練されたブラウザ設定を使用していても、同じ IP からの過剰なリクエストにより、ターゲット サイトから不審な視線を受ける可能性があります。
  3. フォームの送信などのユーザー インタラクションには CAPTCHA の解決が必要な場合がありますが、これを自動化するのは簡単なことではありません。


問題はブラウザ自動化ライブラリ自体にあるのではなく (Playwright は素晴らしい! 🤘)、むしろ制御下にあるブラウザにあります。解決策は、次のような高度にカスタマイズ可能なブラウザです。


  • ボットの検出を回避するために、通常のブラウザーと同様にヘッダー モードで実行します。
  • クラウドに簡単に拡張できるため、インフラストラクチャ管理の時間とコストを節約できます。
  • 市場で最も広範で信頼性の高いプロキシ ネットワークの 1 つによってバックアップされたローテーション IP を提供します
  • CAPTCHA の解決、ブラウザのフィンガープリント、Cookie とヘッダーのカスタマイズ、自動再試行を自動的に管理して、最大限の効果を得ることができます。
  • Playwright、Selenium、Puppeteer などの最も一般的なブラウザ自動化ライブラリと統合します。


信じられないかもしれませんが、それは遠いところの蜃気楼ではありません。それは本当であり、まさにBright Data のスクレイピング ブラウザソリューションのすべてです。


最終的な考え

Playwright はブラウザ自動化ライブラリのロックスターであり、クリスマスイブにサンタクロースがプレゼントを届けるのと同じように、Microsoft は毎月メジャーな新しいアップデートをリリースします。ここでは、Playwright の最新のアップデートを最大限に活用する方法を説明しましたが、正直に言って、高度なボット検出テクノロジを備えたサイトから魔法のようにユーザーが見えなくなるわけではありません。


Bright Dataの Scraping Browser ソリューションでその弾丸を回避し、自動化されたスクリプトを使用して、インターネットをどこにいても誰もが利用できる公共の場所にするという私たちの使命に参加してください。


次回まで、自由にウェブを探索し続けてください。