• ログイン今すぐ開始

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

ランタイム アップグレード エラーのトラブルシューティング

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を引き続き使用することを選択したお客様は、 コード例をモニターに貼り付けることができます。

Copyright © 2022 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.