Scripted Browser: 要素を操作しようとすると失敗する
古いランタイムで作成されたモニターをChrome 100 (またはそれ以降)のランタイムに対して検証する場合、ページ上の要素を検索して操作する findElement およびその他のメソッドは、promise 処理の違いにより失敗する場合があります。モニターがレガシー ランタイムで合格し、新しいランタイムで失敗し、要素がスクリーンショットに存在する場合、promise 処理ロジックを改善する必要がある場合があります。
Selenium WebDriver の promise マネージャー/制御フローにより、promise を管理せずに、一部の関数をレガシー ランタイムで順番に実行できました。この機能は Selenium WebDriver 4.0 で削除され、ランタイムでは使用できなくなりました。すべての非同期関数と promise は、 await
または.then
promise チェーンで管理する必要があります。これにより、スクリプト関数が期待どおりの順序で実行されるようになります。
たとえば、$browser.get が promise を返し、promise が正しく処理されていない場合でも、promise manager/制御フローにより、この部分的なスクリプトが正常に完了する可能性があります。
$browser.get('http://example.com');
$browser.findElement($driver.By.css('h1'));
Chrome 100 (またはそれ以降) のランタイムでは、promise を返すすべてのメソッドで await または .then を使用する必要がありますステップを適切に順序付けるための構文。構文が簡潔で使いやすいため、await の使用をお勧めしますが、.thenpromise チェーンも引き続きサポートされます。
await $browser.get('http://example.com');
let el = await $browser.findElement($driver.By.css('h1'));
スクリプト API: request
との違い got
Node.js 10 以前のスクリプト化された API ランタイムは、 request
Node.js モジュールを使用して、API のテストに使用できる$http
オブジェクトを提供していました。
Node.js 16 以降のスクリプト化された API ランタイムは、 request
} の代わりにgot
を使用します。request
モジュールは 2020 年に廃止され、新しい API またはブラウザ ベースのランタイムには含まれなくなります。$http
オブジェクトは、非推奨のモジュールの使用を回避しながら、基本的なユース ケースの下位互換性を提供するためにgot
を利用しながら、 request
のようなカスタム エクスペリエンスを提供します。request
のすべての高度なユース ケースがサポートされているわけではありません。スクリプト例と変換ガイドが利用可能です。
ヒント
$http
オブジェクトによって提供されるrequest
のようなエクスペリエンスは、Node.js 16 以降のスクリプト化された API ランタイムでrequest
を直接使用しようとするすべての顧客に対しても返されます。
Scripted Browser: 非推奨の警告 ($browser / $driver)
Chrome 72 以前のスクリプト化されたブラウザ ランタイムは、 $driver
と$browser
を使用してSelenium WebDriver API を公開していました。これらのオブジェクトは、下位互換性のために Chrome 100 以降のランタイムで引き続き使用できますが、これらのオブジェクトを使用すると、スクリプト ログに非推奨の警告が表示されます。この警告によってモニターが失敗することはなく、非推奨の日付は設定されていません。
Chrome 100 以降のスクリプト化されたブラウザ ランタイムは、 $driver
と$browser
の代わりに$selenium
と$webDriver
を使用します。$selenium
および$webDriver
オブジェクトは Selenium WebDriver 4.1 API へのアクセスを提供し、 $driver
および$browser
オブジェクトは Selenium WebDriver 3.6 構文との後方互換性を提供します。
スクリプト化されたブラウザ: waitForAndFindElement および waitForPendingRequests
waitForAndFindElement
メソッドとwaitForPendingRequests
メソッドは、Chrome 72 以前のスクリプト化されたブラウザ ランタイムで提供される New Relic カスタム メソッドです。Chrome 100 以降のランタイムでは引き続き$driver
および$browser
で使用できますが、Selenium WebDriver 4.1 API を$selenium
および$webDriver
で直接使用する場合は使用できません。この変更により、New Relic の Selenium WebDriver 実装が基本の Selenium WebDriver 実装とより適切に連携します。
新しいランタイムでwaitForAndFindElement
またはwaitForPendingRequests
を引き続き使用することを選択したお客様は、 コード例をモニターに貼り付けることができます。