我想点击页面中显示的 app-meter-tile
之一(有很多带有数据的 app-meter-tile
列表在页面中),带有 id customer-info
或 offtake
id 或客户名称
。我已经尝试了下面的代码,但抛出以下错误。我很想知道我们如何点击基于 $eval
或访问基于 xpath
选项,请告知。
var div = await page.$eval(".mb-10[id='customer-info']",
element=> element.getAttribute("id"))
await div.click(".mb-10[id='customer-info']");
超时或其他错误:TypeError:div.click 不是函数 在 C:\work\UiTests\offline-login-check.js:59:15 在 process._tickCallback (内部/process/next_tick.js:68:7)
最佳答案
为什么你的代码不起作用
此方法访问具有提供的选择器的第一个元素并返回其id:
var div = await page.$eval(".mb-10[id='customer-info']",
element=> element.getAttribute("id"))
id 是一个字符串,当然没有click
函数。
page.$eval
的正确使用方法:
await page.$eval(".mb-10[id='customer-info']", element => element.click())
另一种方法 是通过获取元素的句柄然后单击它:
const div = await page.$(".mb-10[id='customer-info']");
await div.click();
关于node.js - 单击基于 $eval 的 div 抛出 div click 不是 puppeteer 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57931437/