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 request
enquanto é 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 request
fornecida 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.