javascript - 单击元素句柄内的元素

标签 javascript puppeteer playwright

如何单击现有句柄内的元素?
考虑到有一个对 foo 句柄的引用:

const fooHandle = await page.$('.foo');
当前 foo 选择器重复:
page.click('.foo .bar');
我想选择 .bar基于 fooHandle引用而不是重复 .foo选择器。在其他地方,使用嵌套元素获取句柄涉及更复杂的检查,而简单的选择器无法完成这些检查。
我正在使用 Playwright,但由于 API 相似性,我认为该解决方案与 Puppeteer 相同。

最佳答案

在剧作家中,$$$方法可在 ElementHandle objects 上找到也:

elementHandle.$(selector)

selector <string> - A selector to query for.

returns: <Promise<null|ElementHandle>>

The method finds an element matching the specified selector in the ElementHandle's subtree. [...] If no elements match the selector, returns null.


所以你的代码可以这样组织:
const fooHandle = await page.$('.foo');
const barHandle = await fooHandle.$('.bar');
await barHandle.click(); 

关于javascript - 单击元素句柄内的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68190344/

相关文章:

javascript - Codeigniter:如何包含 javascript 文件

javascript - window.print() 在 Internet Explorer 中挂起

javascript - Puppeteer 不能在特定的输入字段中写入

javascript - 我如何传递这个变量以从我的模块中使用它?

playwright - 如何增加剧作家中networkidle的等待时间?

javascript - 哪些变量位于图像 .onerror 调用的范围内?

javascript - 如何使用用户脚本覆盖警报功能?

javascript - Puppeteer 同步定义浏览器和页面

web-scraping - 如何使用剧作家捕捉特定的重定向?

Python Playwrite 内存过载