全网整合营销服务商

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

免费咨询热线: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  # 选择器  # 多个  # 而非  # 换行  # 是一个  # 分隔符  # 换行符  # 其中一个  # 再用  # 报错  # 需注意 


相关文章: Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解  定制建站策划方案_专业建站与网站建设方案一站式指南  如何撰写建站申请书?关键要点有哪些?  公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?  C#怎么创建控制台应用 C# Console App项目创建方法  PHP正则匹配日期和时间(时间戳转换)的实例代码  如何选择美橙互联多站合一建站方案?  建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析  宝塔建站后网页无法访问如何解决?  定制建站模板如何实现SEO优化与智能系统配置?18字教程  个人摄影网站制作流程,摄影爱好者都去什么网站?  如何通过NAT技术实现内网高效建站?  存储型VPS适合搭建中小型网站吗?  ui设计制作网站有哪些,手机UI设计网址吗?  洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?  建站之星2.7模板快速切换与批量管理功能操作指南  如何快速搭建高效简练网站?  如何在宝塔面板中修改默认建站目录?  如何在宝塔面板中创建新站点?  如何用VPS主机快速搭建个人网站?  实例解析Array和String方法  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  建站之星IIS配置教程:代码生成技巧与站点搭建指南  建站之星代理费用多少?最新价格详情介绍  如何快速生成可下载的建站源码工具?  如何快速打造个性化非模板自助建站?  西安大型网站制作公司,西安招聘网站最好的是哪个?  教程网站设计制作软件,怎么创建自己的一个网站?  如何快速上传自定义模板至建站之星?  如何在云虚拟主机上快速搭建个人网站?  清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?  正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?  建站之星如何助力企业快速打造五合一网站?  如何快速生成ASP一键建站模板并优化安全性?  如何配置WinSCP新建站点的密钥验证步骤?  高防服务器租用首荐平台,企业级优惠套餐快速部署  制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?  如何通过智能用户系统一键生成高效建站方案?  北京网站制作公司哪家好一点,北京租房网站有哪些?  高端建站如何打造兼具美学与转化的品牌官网?  免费公司网站制作软件,如何申请免费主页空间做自己的网站?  网站制作的方法有哪些,如何将自己制作的网站发布到网上?  成都响应式网站开发,dw怎么把手机适应页面变成网页?  广州顶尖建站服务:企业官网建设与SEO优化一体化方案  c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】  如何通过商城免费建站系统源码自定义网站主题?  我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?  佛山网站制作系统,佛山企业变更地址网上办理步骤?  宁波自助建站系统如何快速打造专业企业网站?  宝华建站服务条款解析:五站合一功能与SEO优化设置指南 

您的项目需求

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