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

Selenium中CSS通配选择器多条件匹配失效问题

Selenium多条件CSS选择器匹配问题解答

问题核心

你当前编写的CSS选择器写法错误,这是运行后返回空元素列表的直接原因。

错误点说明

标准CSS选择器语法中不存在and逻辑关键字,你写的[id^='cell_'] and [id*='button']无法被浏览器内置的CSS选择器引擎识别,自然匹配不到任何元素。
CSS选择器实现多条件逻辑与(同时满足多个规则)的方式,是把多个匹配规则直接连续书写,不需要加任何连接词。

正确实现代码

针对你需要匹配id以cell_开头、且id包含button关键词的元素(对应id格式cell_[number]-button_[number]),正确的Java代码如下:

var elements = Util.driver.findElements(By.cssSelector("[id^='cell_'][id*='button']"));

规则拆解

  • [id^='cell_']:匹配id属性值以cell_字符串开头的所有元素
  • [id*='button']:匹配id属性值中包含button字符串的所有元素
  • 两个属性选择器直接拼接,代表元素必须同时满足以上两个规则,完全匹配你的目标元素特征。

如果需要更严格匹配cell_数字-button_数字的固定格式,避免误匹配其他同前缀但格式不符的元素,可以使用精度更高的选择器:

// 严格匹配cell_x-button_x格式id的元素(x为任意数字)
var elements = Util.driver.findElements(By.cssSelector("[id^='cell_'][id*='-button_']"));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 14:42:33