最近定位class元素对于我这个萌新来说费了九牛二虎之力
如下截图:

我要定位
class=“anticon anticon-user”
首先我想到的是通过class name定位
代码实现:因为我封装了获取class name方法所以直接调用的
![]()
结果报错
![]()
通过百度一搜是空格导致 然后把空格去掉
get_classid("anticon-user").click()
然后跑了一下结果提示这个元素被模糊掉了

后面想到另一种方法
通过 find_element_by_link_text 定位元素
结果定位成功

总结:
1、class属性中间的空格并不是空字符串,是间隔符号,表示的是一个元素有多个class的属性名称
(class属性是比较特殊的一个,除了class这个有多个属性外,像name,id没多个属性)
2、selenium 提供了8中元素定位的方法 选择适合的方法来定位
- find_element_by_id
- find_element_by_name
- find_element_by_xpath
- find_element_by_link_text
- find_element_by_partial_link_text
- find_element_by_tag_name
- find_element_by_class_name
- find_element_by_css_selector
3、一定要学会看错误信息,然后一步一步去定位问题
博主作为萌新在使用Selenium定位class元素时遇到困难。最初用class name定位因空格报错,去掉空格后提示元素被模糊。后用find_element_by_link_text定位成功。总结指出class属性空格是间隔符,Selenium有8种定位方法,要选合适的,且要学会看错误信息定位问题。
918

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



