今天使用选择器定位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()
此时,终于定位成功啦!
如有帮助,请点赞赞(●´∀`●)
如有疑惑,评论区留言喽(•̀ᴗ•́)و