使用 .pop 方法将 javascript 代码转换为 puppeteer
我是 puppeteer 的新手,我尝试转换此 javascript 代码:
let messageElement;
await driver.findElements(By.className("message-list-item")).then(
(ok) => {
messageElement = ok.pop()
}
)
await messageElement.getAttribute("id").then(
(ok) => {
messageNum = parseInt(ok.split("message")[1]);
}
)
“.pop()”方法需要转换,我知道在 puppeteer 中我们可以使用“length - 1”,但我不能。 我已经尝试过这个:
const el = await page.$('.message-list-item')
.then( (elements) => elements[el.length - 1]);
但不起作用。
I'm new to puppeteer and I try to convert this javascript code :
let messageElement;
await driver.findElements(By.className("message-list-item")).then(
(ok) => {
messageElement = ok.pop()
}
)
await messageElement.getAttribute("id").then(
(ok) => {
messageNum = parseInt(ok.split("message")[1]);
}
)
The ".pop()" method need to be convert and I know with puppeteer we can use "length - 1" but I can't.
I've tried this :
const el = await page.$('.message-list-item')
.then( (elements) => elements[el.length - 1]);
But not work.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这与“将 .pop() 转换为 puppeteer”无关。
pop
是 Array 原型上的标准函数。根据 puppeteer docs ,page.$()
在 DOM 节点上执行querySelector
,返回 DOM 节点直接而不是 DOM 节点数组,因此您不需要使用pop
或任何其他数组函数。这相当于
EDIT
如果您想要具有该类名的最后一个元素,那么您需要获取这些项目的列表,为此您可以使用
$$
,根据文档使用querySelectorAll
,然后获取最后一个元素。This has nothing to do with "converting .pop() to puppeteer".
pop
is a standard function on the Array prototype. According to the puppeteer docs, thepage.$(<selector>)
performs aquerySelector
on the DOM nodes, which returns the DOM node directly rather than an array of DOM nodes, so you don't need to usepop
or any other Array function.which is equivalent to
EDIT
If you want the last element with that classname, then you need to get a list of those items, for which you can use
$$
which according to the docs usesquerySelectorAll
, and then get the last element.与 :
工作完成了,感谢您的帮助!
我可以再问你一个问题吗?
我有这个 javascript :
尝试在 puppeteer 中转换:
但这不好......
再次感谢
With :
It's work, thanks for your help !
Can I ask you another problem ?
I've this javascript :
Try to convert in puppeteer:
But it's not good ...
Thanks again