You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Playwright定位包含指定数量子元素的ul元素?

查找包含2个li元素的ul

有两种实用方法可以实现这个需求:

方法一:通过locator的filter方法筛选

利用filter结合子元素存在性判断,精准匹配子元素数量为2的ul:

page.locator('ul').filter({
  has: page.locator('li').nth(1), // 确保存在第2个li(索引从0开始)
  hasNot: page.locator('li').nth(2) // 确保不存在第3个li
});

也可以通过evaluate直接计算子元素数量:

page.locator('ul').filter({
  async predicate(element) {
    return element.querySelectorAll('li').length === 2;
  }
});

方法二:使用CSS选择器的:has()伪类

借助CSS伪类直接写出匹配规则:

page.locator('ul:has(li:nth-child(2)):not(:has(li:nth-child(3)))');

该选择器逻辑是:找到包含第2个li元素,且不包含第3个li元素的ul,即恰好有2个li的容器。

你设想的hasCount参数目前Playwright并未提供,以上是可行的替代实现方案。

内容的提问来源于stack exchange,提问作者machineghost

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 23:52:02