全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

如何正确处理 HTML 中包含换行与空格的 class 名称

html 元素的 class 属性值虽在开发者工具中显示为多行缩进格式,但实际是单行字符串,其中的换行和多余空格会被浏览器自动规范化为空格分隔符;因此该 class 值本质是多个独立 class 的组合(如 `"ll-sets-words__row false"`),而非一个含换行符的单一类名。

在 HTML 规范中,class 属性是一个以空格分隔的类名列表(whitespace-separated tokens),浏览器会自动将换行符、制表符、连续空格等所有空白字符统一视为单个分隔符。你从 DevTools 复制的如下内容:

            ll-sets-words__row
            false

实际等价于:

class="ll-sets-words__row false"

这意味着该元素同时拥有两个 class:ll-sets-words__row 和 false。而 Selenium 的 By.CLASS_NAME 仅支持匹配单个精确类名(不能含空格或多个类),因此传入带换行/空格的字符串(如 "\n ll-sets-words__row\n false\n")会导致 InvalidSelectorException 或查无结果。

✅ 正确做法是:使用 By.CSS_SELECTOR 并通过类选择器组合精准定位所有目标元素,而非强行依赖 By.CLASS_NAME。例如:

# ✅ 推荐:查找同时具有两个 class 的所有元素(顺序无关)
words = entire_dict.find_elements(By.CSS_SELECTOR, ".ll-sets-words__row.false")

# ✅ 或更灵活:查找拥有至少其中一个 class 的元素(若语义允许)
words = entire_dict.find_elements(By.CSS_SELECTOR, ".ll-sets-words__row, .false")

# ✅ 或最稳妥:结合父容器 + class 组合,避免误匹配
words = browser.find_elements(By.CSS_SELECTOR, "table.ll-page-vocabulary__sets-words__table .ll-sets-words__row.false")

⚠️ 注意事项:

  • By.CLASS_NAME("ll-sets-words__row false") 是非法用法,Selenium 会直接报错;
  • BeautifulSoup.find_all(class_="...") 同样只接受单个类名或 list[str](如 class_=["ll-sets-words__row", "false"]),但需注意:class_=["A","B"] 表示「同时包含 A 和 B」,与 CSS 中 .A.B 等价;
  • 若需动态提取 class 列表,可用 element.get_attribute("class") 获取原始字符串,再用 .split() 清洗(自动去除首尾空格及中间多余空白):
    raw_class = element.get_attribute("class")  # 返回 "ll-sets-words__row false"
    classes = raw_class.split()  # → ['ll-sets-words__row', 'false']

? 总结:不要被 DevTools 的格式误导——HTML class 永远是空格分隔的扁平列表。优先使用 By.CSS_SELECTOR 实现多类联合匹配,它语义清晰、性能优异,且天然支持 .class1.class2(AND 关系)或 .class1, .class2(OR 关系)等灵活写法,完全满足“查找所有具备指定类组合的元素”的需求。


# css  # word  # html  # 浏览器  # 工具  # beautifulsoup  # 字符串  # class  # 选择器  # 多个  # 而非  # 换行  # 是一个  # 分隔符  # 换行符  # 其中一个  # 再用  # 报错  # 需注意 


相关文章: C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)  网站代码制作软件有哪些,如何生成自己网站的代码?  制作充值网站的软件,做人力招聘为什么要自己交端口钱?  如何彻底卸载建站之星软件?  如何构建满足综合性能需求的优质建站方案?  如何访问已购建站主机并解决登录问题?  建站之星如何防范黑客攻击与数据泄露?  建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略  教育培训网站制作流程,请问edu教育网站的域名怎么申请?  宁波自助建站系统如何快速打造专业企业网站?  如何快速搭建个人网站并优化SEO?  如何选择最佳自助建站系统?快速指南解析优劣  青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?  微网站制作教程,我微信里的网站怎么才能复制到浏览器里?  如何选择美橙互联多站合一建站方案?  如何用VPS主机快速搭建个人网站?  建站之星后台管理如何实现高效配置?  北京专业网站制作设计师招聘,北京白云观官方网站?  如何快速查询网址的建站时间与历史轨迹?  官网自助建站平台指南:在线制作、快速建站与模板选择全解析  太平洋网站制作公司,网络用语太平洋是什么意思?  移民网站制作流程,怎么看加拿大移民官网?  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  建站之星如何取消后台验证码生成?  电商平台网站制作流程,电商网站如何制作?  建站之星如何保障用户数据免受黑客入侵?  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  家庭服务器如何搭建个人网站?  制作网站的过程怎么写,用凡科建站如何制作自己的网站?  如何在阿里云ECS服务器部署织梦CMS网站?  如何在橙子建站中快速调整背景颜色?  如何在企业微信快速生成手机电脑官网?  如何通过FTP服务器快速搭建网站?  Android滚轮选择时间控件使用详解  家具网站制作软件,家具厂怎么跑业务?  公司网站设计制作厂家,怎么创建自己的一个网站?  大型企业网站制作流程,做网站需要注册公司吗?  建站之星3.0如何解决常见操作问题?  再谈Python中的字符串与字符编码(推荐)  西安大型网站制作公司,西安招聘网站最好的是哪个?  七夕网站制作视频,七夕大促活动怎么报名?  制作表格网站有哪些,线上表格怎么弄?  如何快速搭建高效服务器建站系统?  简历在线制作网站免费,免费下载个人简历的网站是哪些?  郑州企业网站制作公司,郑州招聘网站有哪些?  专业网站建设制作报价,网页设计制作要考什么证?  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  设计网站制作公司有哪些,制作网页教程?  建站之星如何修改网站生成路径?  c# 在高并发下使用反射发射(Reflection.Emit)的性能 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。