selenium 带有空格的class name元素定位 |
您所在的位置:网站首页 › class命名可以有空格吗 › selenium 带有空格的class name元素定位 |
前言 有些class属性中间有空格,如果直接复制过来定位是会报错的InvalidSelectorException: Message: The given selector u-label f-dn is either invalid or does not result in a WebElement. The following error occurred: InvalidSelectorError: Compound class names not permitted 这个报错意思是说定位语法错了。 class属性科普 1.class属性中间的空格并不是空字符串,那是间隔符号,表示的是一个元素有多个class的属性名称 (class属性是比较特殊的一个,除了这个有多个属性外,其它的像name,id是没多个属性的) 取其中一个唯一的属性是能定位的,但大多数情况下,该属性名有多个元素使用。这时你可以定位所有元素,然后通过下标来获取需要的元素。另外,也可以使用css属性定位,具体见方法用例 假设有 class name = col3 fcweak ft12 tal 其中仅 tal唯一 # 方法一:取单个class属性(如果属性唯一) Element=driver.find_element_by_class_name("tal") # 方法二:定位一组取下标定位(乃下策) Element=driver.find_elements_by_class_name("fcweak ")[0] Element=driver.find_elements_by_class_name("ft12 ")[3] # 方法三:css定位 Element=driver.find_element_by_css_selector(".col3.fcweak.ft12.tal") # 方法四:取css的单个class属性也是可以的 Element=driver.find_element_by_css_selector(".col3") # 方法五:直接包含空格的CSS属性定位大法 Element=driver.find_element_by_css_selector("[class='col3 fcweak ft12 tal']") css 定位请看博客 https://www.cnblogs.com/zuodaozhudemeng/p/7487798.html |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |