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

Python Selenium中如何正确定位含多类名的按钮元素?

正确定位Selenium中带多类名的按钮

为啥之前的代码失败?

  • Selenium的By.CLASS_NAME只能传单个类名,不能用空格分隔多个类(空格在CSS规则里是后代选择器,不是多类名的写法)。
  • 你代码里还写错了变量:var(-rem14)应该是var(--rem14),少了一个减号,这也会导致匹配失败。

几种可行的定位方法

1. 用CSS选择器拼接所有类名

把每个类名前面加.,连起来写(注意修正变量名):

button = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '.login.w-100.button-large.px-[var(--rem14)].button-brand.items-center.justify-center.button.inline-flex')))

2. 精简类名,选唯一组合

不用全用,挑几个能唯一识别这个按钮的类就行,比如login+button-brand+button-large,代码更清爽:

button = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '.login.button-brand.button-large')))

3. 结合元素属性定位

如果类名容易变,可以搭配type属性一起定位:

button = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, 'button[type="button"].login.button-brand')))

额外提醒

复制类名时的换行、多余空格浏览器都会自动忽略,重点是选对选择器语法——处理多类名元素,优先用CSS_SELECTOR或者XPATH,别用By.CLASS_NAME。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 11:07:08