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

如何在Selenium/Python的CSS选择器中使用OR条件定位网站Logo?

解决CSS选择器多属性“或”匹配的问题

CSS选择器中实现或逻辑的正确方式是用逗号分隔多个独立选择器,你之前用的|或||是XPath语法,不适用于CSS选择器。

正确的选择器写法

要匹配任意标签中class/id/alt/name属性包含logo子串的元素,直接把各个属性选择器用逗号隔开即可:

driver.find_element(By.CSS_SELECTOR, "*[class*='logo'], *[id*='logo'], *[alt*='logo'], *[name*='logo']")

各部分说明

  • *:匹配任意HTML标签,符合你不确定logo所在标签的需求
  • [class*='logo']:匹配class属性值包含logo子串的元素
  • [id*='logo']:匹配id属性值包含logo子串的元素
  • [alt*='logo']:匹配alt属性值包含logo子串的元素(通常用于img标签的logo)
  • [name*='logo']:匹配name属性值包含logo子串的元素

注意事项

  1. 如果页面中有多个符合条件的元素,find_element只会返回第一个匹配项。若需获取所有匹配结果,改用find_elements并做后续筛选(比如判断元素可见性、是否包含图片资源等)
  2. 部分网站的logo可能使用自定义属性(如data-*),可根据实际情况补充对应的选择器
  3. 若想提升匹配效率,可优先放置更精准的选择器(比如多数logo在img标签时,把img[alt*='logo']放在前面)

内容的提问来源于stack exchange,提问作者Marcos Arreguín

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 11:11:20