我正在尝试运行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执行这些命令。