Ei! Já faz um tempo desde a última entrada.
Recentemente, tenho abordado um problema relacionado à perda de referências de elementos em um loop e finalmente encontrei uma solução que gostaria de compartilhar com todos vocês.
Aqui está uma versão simplificada do código inicial:
const someElements = await page.$$("xpath/ .//foo[@name='hoge']"); for (let i=0; iQue erro encontrei
Após a iteração do loop forst, o script não conseguiu localizar os elementos do botão. Continuei recebendo o seguinte erro:
ProtocolError: Erro de protocolo (DOM.describeNode): Não é possível encontrar o contexto com o ID especificado emComo eu resolvi isso
Resolvi esse problema declarando novamente a lista de elementos do botão dentro do loop.
Aqui está o código modificado:
const someElements1 = await page.$$("xpath/ .//foo[@name='hoge']"); for (let i=0; iEu adicionei a linha de redeclaração porque presumi que a referência original de someElements estava se perdendo ao navegar para fora da página inicial. Após essa alteração o erro foi resolvido. No entanto, não tenho certeza se essa abordagem segue estritamente as melhores práticas de codificação.
Se você encontrar um problema com .click() em um loop ao navegar entre as páginas, considere declarar novamente o elemento dentro do próprio loop. Essa simples mudança pode economizar muito tempo na solução de problemas!
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3