• EnglishEspañol日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

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.

Criar um problema

Solucionar erros de atualização em tempo de execução

Importante

No dia 22 de outubro de 2024, encerraremos a vida útil das versões conteinerizadas minion privado (chamadas por minuto) e legado runtime do Synthetics. Para localização pública, use a interface de atualização de tempo de execução para atualizar seu monitor para os tempos de execução mais recentes. Para localização privada, revise nossas etapas de migração recomendadas para evitar a degradação monitor .

Browser com script: tentativas de interagir com elementos falham

Ao validar um monitor criado em um tempo de execução mais antigo em relação ao tempo de execução do Chrome 100 (ou mais recente), findElement e outros métodos para localizar e interagir com elementos na página podem falhar devido a diferenças no tratamento de promessas. Se o monitor passar em um tempo de execução legado, falhar no novo tempo de execução e o elemento estiver presente na captura de tela, talvez seja necessário melhorar sua lógica de tratamento de promessas.

O gerenciador de promessas / fluxo de controle do Selenium Webdriver permitiu que algumas funções fossem executadas em ordem em tempos de execução legados, sem gerenciar promessas. Esse recurso foi removido no Selenium Webdriver 4.0 e não está mais disponível em tempo de execução. Todas as funções e promessas assíncronas precisam ser gerenciadas com await ou com .then cadeia de promessas. Isso garantirá que as funções do script sejam executadas na ordem esperada.

Por exemplo, o gerenciador de promessas/fluxo de controle poderia permitir que esse script parcial fosse concluído com êxito, mesmo que $browser.get retorne uma promessa e a promessa não esteja sendo tratada corretamente:

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

No tempo de execução do Chrome 100 (ou mais recente), qualquer método que retorne uma promessa precisa usar await ou .then sintaxe para sequenciar corretamente as etapas. Usar await é recomendado devido à sintaxe mais limpa e ao uso mais fácil, mas .then A promessa da cadeia ainda é suportada também.

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

API com script: diferenças entre request e got

Os tempos de execução API com script Node.js 10 e anteriores usavam o módulo request Node.js para fornecer um objeto $http que poderia ser usado para testar APIs.

Os tempos de execução da API com script Node.js 16 e mais recentes usam got em vez de request. O módulo request foi descontinuado em 2020 e não será mais incluído em novas API ou em ambientes de execução baseados em browser. O objeto $http fornece uma experiência personalizada semelhante a requestenquanto é desenvolvido com got para fornecer compatibilidade com versões anteriores para casos de uso básicos e ainda evitar o uso de um módulo obsoleto. Nem todos os casos de uso avançados de request são ou serão suportados. exemplosscript e um guia de conversão estão disponíveis.

Dica

A experiência semelhante a requestfornecida pelo objeto $http também será retornada para todos os clientes que tentarem usar request diretamente no Node.js 16 e em tempos de execução de API com script mais recentes.

API com script: erros inesperados do token JSON.parse

A tentativa de usar a função JSON.parse ao interagir com o corpo da resposta pode produzir erros de token inesperados no monitor de API com script usando o Node.js 16 e o ambiente de execução mais recente. Se o cabeçalho de resposta do tipo de conteúdo for application/json, o corpo da resposta retornado pelo objeto $http será analisado como JSON. Chamadas adicionais que tentarem usar JSON.parse para analisar o corpo da resposta falharão com esse erro porque o corpo da resposta já foi analisado.

Browser com script: avisos de descontinuação ($browser / $driver)

Os avisos de descontinuação de $browser e $driver foram removidos a partir da versão 2.0.29 ou mais recente do tempo de execução do browser. Você não deverá mais receber esses avisos ao usar localização pública. Atualize a imagem de tempo de execução do browser do nó se você estiver recebendo esses avisos ao usar localização privada.

Browser com script: waitForAndFindElement e waitForPendingRequests

Os métodos waitForAndFindElement e waitForPendingRequests são métodos personalizados da New Relic fornecidos no Chrome 72 e em tempos de execução de browser com script mais antigos. Eles ainda podem ser usados com $driver e $browser no Chrome 100 e em tempos de execução mais recentes, mas não estarão disponíveis ao usar a Selenium Webdriver 4.1 API diretamente com $selenium e $webDriver. Essa mudança alinhará melhor a implementação do Selenium Webdriver da New Relic com a implementação básica do Selenium Webdriver .

Os clientes que optarem por continuar usando waitForAndFindElement ou waitForPendingRequests no novo tempo de execução poderão colar exemplos de código em seus monitores.

Copyright © 2024 New Relic Inc.

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