[Python] Cannot read property 'getBoundingClientRect' of undefined

Discussão em 'Python' iniciado por Stack, Junho 8, 2025.

  1. Stack

    Stack Membro Participativo

    Estou tentando rodar um código de pyppeteer (básicamente puppeteer porém para python ao invés de nodejs), e nele rodo um script no navegador inicializado através de .evaluate(), porém algo em meu javascript está suscitando o erro cannot read property 'getBoundingClientRect' of undefined.

    Estou rodando quatro evals diferentes porque juntá-los não funciona nem mesmo no console do chrome diretamente. Eles são:

    await page.evaluate('''function offset(el) {
    var rect = el.getBoundingClientRect(),
    scrollLeft = window.pageXOffset || document.documentElement.scrollLeft,
    scrollTop = window.pageYOffset || document.documentElement.scrollTop;
    return { top: rect.top + scrollTop, left: rect.left + scrollLeft }
    }''')
    await page.evaluate('''var vari1 = document.querySelector('.swap-wrap');''')
    await page.evaluate('''var divOffset = offset(vari1);''')
    element_coordinates = await page.evaluate('''() => {
    return(divOffset.left, divOffset.top)
    }''')


    Será que o fato de o código ser assíncrono tem relação com (supostamente) o el ser tratado como undefined? Se eu executar no console cada um desses comandos contidos no eval um de cada vez, terei o resultado desejado, mas aqui com eval não.

    Código na íntegra: https://ideone.com/zddnWR

    E o erro na íntegra: https://imgur.com/a/3130PW7

    Continue reading...

Compartilhe esta Página