无法读取未定义的属性“ getBoundingClientRect”

时间:2019-07-25 17:43:43

标签: javascript python eval puppeteer

我正在尝试运行pyppeteer代码(基本上是puppeteer,但适用于python而不是nodejs),在那里我通过.evaluate()方法在初始化的浏览器中运行脚本,但是我的javascript中出现了错误无法读取未定义的属性'getBoundingClientRect'

我正在运行4个独立的评估程序-因为即使在控制台中也无法将它们结合在一起;他们是:

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)
    }''')

代码的重点是获取给定元素在屏幕上的坐标。

它是异步的事实与(应该)与 el 被视为未定义有关系吗?如果我在控制台中依次执行这些命令中的每一个,我将获得理想的结果,但是此处无法通过eval执行这些命令。

整个代码:https://ideone.com/zddnWR

整个错误:https://imgur.com/a/3130PW7

0 个答案:

没有答案