python+selenium 之页面元素定位,当定位元素时发现元素值中间有空格时如何处理

新人一枚,

selenium的常规定位方法:

8种元素定位分别是

  1.find_element_by_id()  #通过元素id定位

  2.find_element_by_name() #通过元素name定位

  3.find_element_by_class_name() #通过元素class定位

  4.find_element_by_tag_name() #通过标签tag名称定位

  5.find_element_by_link_text() #超链接定位方法

  6.find_element_by_partial_link_text() #超链接模糊定位方法

  7.find_element_by_xpath() #xpath定位

  8.find_element_by_css_selector() #css定位

其中前面六种比较好学,元素有的直接套用就行,

xpath和css定位更加全面和强大(号称selenium里面的倚天剑和屠龙刀)

今天分享一个就是元素class值中间有空格的怎么定位。

直接使用find_element_by_class_name() ,运行后报错提示定位不到该元素

这个时候建议使用css定位

例如:元素class=“layui-input layui-unselect”

中间有一个空格,第一次定位直接就用class值定位

find_element_by_class_name(“layui-input layui-unselect”) 

结果报错找不到元素

亲试以下一些处理方法,总结下:

# 方法一:取单个class属性(如果属性唯一)  

driver.find_element_by_class_name("layui-input")

 # 方法二:定位一组取下标定位(乃下策)  

driver.find_elements_by_class_name("layui-input")[0]

driver.find_elements_by_class_name("layui-unselect")[1]

 # 方法三:css定位  

driver.find_element_by_css_selector(".layui-input.layui-unselect") 

 # 方法四:取css的单个class属性也是可以的  

driver.find_element_by_css_selector(".layui-input")

 # 方法五:直接包含空格的CSS属性定位大法  

driver.find_element_by_css_selector("[class='layui-input layui-unselect']") 

明天中秋假期,还要加班 ^v^...
原文地址:https://www.cnblogs.com/huahuage/p/9688163.html