• EnglishEspañol日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は参考用に提供されます。

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、このページ を参照してください。

問題を作成する

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

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を直接使用しようとするすべての顧客に対しても返されます。

スクリプト化された API: 予期しないトークン JSON.parse エラー

応答本文の操作中にJSON.parse関数を使用しようとすると、Node.js 16 以降のランタイムを使用するスクリプト API モニターで予期しないトークン エラーが発生する可能性があります。content-type 応答ヘッダーがapplication/jsonの場合、 $httpオブジェクトによって返される応答本文は解析された JSON になります。JSON.parseを使用して応答本文を解析しようとする追加の呼び出しは、応答本文がすでに解析されているため、このエラーで失敗します。

Scripted Browser: 非推奨の警告 ($browser / $driver)

$browser$driverの非推奨の警告は、ブラウザ ランタイムの 2.0.29 以降のバージョンから削除されました。公共の場所を使用するときにこれらの警告が表示されなくなります。プライベート ロケーションの使用時にこれらの警告が表示される場合は、ノード ブラウザー ランタイム イメージを更新してください。

スクリプト化されたブラウザ: 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 © 2024 New Relic株式会社。

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