今天使用选择器定位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()
此时,终于定位成功啦!
如有帮助,请点赞赞(●´∀`●)
如有疑惑,评论区留言喽(•̀ᴗ•́)و
当使用Selenium进行网页元素定位时,遇到ID为数字的情况会报错。原来,直接对数字ID进行转义并不正确。正确做法是使用Unicode转义,对数字前加3和空格。例如,将`#2`改为`#\32`,这样就能成功定位到元素。这个技巧对于处理特殊ID的网页元素十分关键。
914

被折叠的 条评论
为什么被折叠?



