id=数字,不能定位,报错解决:InvalidSelectorException: Message: invalid selector: An invalid or illega

当使用Selenium进行网页元素定位时,遇到ID为数字的情况会报错。原来,直接对数字ID进行转义并不正确。正确做法是使用Unicode转义,对数字前加3和空格。例如,将`#2`改为`#\32`,这样就能成功定位到元素。这个技巧对于处理特殊ID的网页元素十分关键。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天使用选择器定位id时恰好id=数字,定位不到的同时还给报错:
selenium.common.exceptions.InvalidSelectorException: Message: invalid selector: An invalid or illegal selector was specified
琉佳原创
我的定位语句:

driver.find_element_by_css_selector('#\2').click()

数字2经过 ‘\’ 转义,但仍定位不到元素。

后来才知道是Unicode转义问题,即如果标识符的第一个字符是数字字符,则需要根据其Unicode代码点对其进行转义。
要转义任何数字字符,只需在其前面加上\3并附加一个空格字符即可。
如下:

# 将原代码
driver.find_element_by_css_selector('#\2').click()
# 改成
driver.find_element_by_css_selector('#\\32 ').click()

此时,终于定位成功啦!

如有帮助,请点赞赞(●´∀`●)
如有疑惑,评论区留言喽(•̀ᴗ•́)و

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值