新人一枚,
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']")