javascript - 单击元素句柄内的元素
问题描述
如何单击现有句柄内的元素?
考虑到对 foo 句柄的引用:
const fooHandle = await page.$('.foo');
目前 foo 选择器被重复:
page.click('.foo .bar');
我想.bar
根据fooHandle
参考进行选择,而不是重复.foo
选择器。在其他地方,使用嵌套元素获取句柄涉及更复杂的检查,而简单的选择器则无法完成。
我正在使用 Playwright,但由于 API 相似性,我认为解决方案与 Puppeteer 相同。
解决方案
在 Playwright中$
,ElementHandle 对象$$
也可以使用方法:
elementHandle.$(selector)
selector <string>
- 要查询的选择器。
returns: <Promise<null|ElementHandle>>
该方法在 ElementHandle 的子树中查找与指定选择器匹配的元素。[...] 如果没有元素匹配选择器,则返回 null。
所以你的代码可以这样组织:
const fooHandle = await page.$('.foo');
const barHandle = await fooHandle.$('.bar');
await barHandle.click();
推荐阅读
- ios - What is the alternative to WebIntent on iOS in Ionic 4?
- sql - 我想加入两个表并获取 10 秒间隔内的记录
- python - 使用服务帐户进行 Google API 身份验证
- node.js - How to warmup a serverless lambda with child routes in nodejs
- c# - C# Math.Net - 如何正确设置 Fit.Curve 的参数
- mysql - SQL - 过滤的命名条件
- powershell - Powershell 2.0 对文件中的列进行计数
- syncfusion - 在我的项目中使用同步融合没有获取图形属性
- flutter - 在 Flutter 项目中使用 Material Design 图标
- javascript - javascript,nodejs中的迭代