• EnglishEspañol日本語한국어Português
  • 로그인지금 시작하기

사용자의 편의를 위해 제공되는 기계 번역입니다.

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

문제 신고

런타임 업그레이드 오류 문제 해결

중요

2024년 10월 22일을 기점으로 컨테이너화된 미니언(분당 호출 수) 및 구형 신세틱스 손잡이 버전 의 수명이 종료 됩니다. 표시 위치의 경우 런타임 업그레이드 UI 사용하여 모니터를 최신 런타임으로 업데이트하세요. 위치 위치의 경우 모니터 성능 저하를 방지하기 위해 권장되는 마이그레이션 단계를 검토하십시오.

스크립팅된 브라우저: 요소와 상호 작용하려는 시도가 실패함

Chrome 100(또는 최신) 런타임 에 대해 이전 런타임에서 생성된 모니터의 유효성을 검사할 때 페이지에서 요소를 찾고 상호작용하는 findElement 및 기타 메서드는 약속 처리 차이로 인해 실패할 수 있습니다. 모니터가 레거시 런타임에서 통과하고 새 런타임에서 실패하고 요소가 스크린샷에 있는 경우 약속 처리 논리를 개선해야 할 수 있습니다.

Selenium WebDriver 약속 관리자/제어 흐름을 통해 일부 기능은 약속을 관리하지 않고 레거시 런타임에서 순서대로 실행할 수 있습니다. 이 기능은 Selenium WebDriver 4.0에서 제거되었으며 런타임에서 더 이상 사용할 수 없습니다. 모든 비동기 함수와 프라미스는 await 또는 .then 프라미스 체인으로 관리해야 합니다. 이렇게 하면 스크립트 기능이 예상 순서대로 실행됩니다.

예를 들어, $browser.get이 약속을 반환하고 약속이 올바르게 처리되지 않더라도 약속 관리자/제어 흐름은 이 부분 스크립트가 성공적으로 완료되도록 허용할 수 있습니다.

$browser.get('http://example.com');
$browser.findElement($driver.By.css('h1'));

Chrome 100(또는 그 이상) 런타임 에서 프라미스를 반환하는 모든 메서드는 await 또는 .then을 사용해야 합니다. 구문을 사용하여 단계를 올바르게 정렬합니다. 더 깔끔한 구문과 더 쉬운 사용법으로 인해 await를 사용하는 것이 좋지만 .then 약속 체인도 여전히 지원됩니다.

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 모니터에서 예기치 않은 토큰 오류가 발생할 수 있습니다. 콘텐츠 유형 응답 헤더가 application/json 인 경우 $http 객체에서 반환되는 응답 본문은 JSON으로 구문 분석됩니다. 응답 본문을 구문 분석하기 위해 JSON.parse 사용하려는 추가 호출은 응답 본문이 이미 구문 분석되었기 때문에 이 오류와 함께 실패합니다.

스크립팅된 브라우저: 사용 중단 경고($browser / $driver)

$browser$driver 에 대한 지원 중단 경고는 브라우저 런타임 2.0.29 이상 버전부터 제거되었습니다. 공공 장소를 사용할 때 더 이상 이러한 경고가 표시되지 않습니다. 비공개 위치를 사용할 때 이러한 경고가 표시되면 노드 브라우저 런타임 이미지를 업데이트하세요.

스크립트 브라우저: waitForAndFindElement 및 waitForPendingRequests

waitForAndFindElementwaitForPendingRequests 메서드는 Chrome 72 및 이전 스크립트 브라우저 런타임에서 제공되는 New Relic 사용자 지정 메서드입니다. Chrome 100 및 최신 런타임에서 $driver$browser 와 함께 계속 사용할 수 있지만 $selenium$webDriver 와 함께 직접 Selenium WebDriver 4.1 API를 사용할 때는 사용할 수 없습니다. 이 변경은 New Relic의 Selenium WebDriver 구현을 기본 Selenium WebDriver 구현과 더 잘 맞출 것입니다.

새 런타임에서 waitForAndFindElement 또는 waitForPendingRequests 을 계속 사용하기로 선택한 고객은 코드 예제 를 모니터에 붙여넣을 수 있습니다.

Copyright © 2024 New Relic Inc.

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