web自动化元素定位的几种方式分析(selenium版本)

简单的说可以分为
标签属性名定位哦,例如id,name,class,
标签名定位:标签的名字 ,可能有标签名字重复的,首选第一个读到标签为准哦
css 选择器定位 :根据标签的层级关系进行定位
文本内容定位:link 和partial_link
还有就是xpath : 定位
具体步骤的话,大部分浏览器是雷同的。网页后台检查,查看源码,可以先鼠标选中要定位的元素,再右键检查哦,也可以先打开后台,然后再检查页的左上角点击选择,鼠标进行滑动就可以了哦。页面鼠标滑过停留有的浏览器会带蓝色的阴影,比如谷歌,这个时候鼠标右击,检查页面就会定位在对应的行上,带有条目阴影,甚至出现 ==$0 在改行的最后面 看下面的图
在这里插入图片描述
上面的几种方式用那个要根据具体情况哦,相对来说,css选择器,Xpath 能确定没有重复定位的元素,id 也可以,但也说不准有重复id的情况哦,name, class ,tag_name 都可能有重复的哦。不确定的话,可以先ctr+f 在搜索框查询看下哦,注意不要选错了查询的内容或者查询的不准确哦!
还有就是class属性定位,如果class=“abd 123” 包含有空格 类似这样的情况 可能元素就定位不到哦,但是不用担心哦,
class属性中间的空格并不是空字符串,那是间隔符号,表示的是一个元素有多个class的属性名称,class属性是比较特殊的一个,除了class这个元素类型有多个属性外,其他的像name,id是没多个属性的。只要确定唯一就可以了哦,ctr+f 搜索看有是不是唯一哦!这点是第二次说了哦!
怎么解决呢?就是 当元素定位不是唯一的时候,可以复数定位哦,把相同的元素定位出来,按下标取第n个就可以
例如 self.driver.find_elements_by_class_name(‘table-dragColumn’)[0].click()
还有css定位
css定位class多个属性时要给元素前面加个点(.)就行,然后空格变成了点(.)就能定位了

♦当然css也可以取class属性的其中一个属性(保证唯一性)来定位,定位方法是灵活多变的。
♦css定位:

self.driver.find_element_by_css_selector(’.dtb-style-1.table-dragColumns’).click()#前面加(.)空格地方用点(.)来代替
♦class单个属性定位

self.driver.find_element_by_css_selector(’.table-dragColumns’).click()#用单个属性来定位前面加个(.) 
♦直接包含空格的css定位神器

self.driver.find_element_by_css_selector(‘class="dtb-style-1 table-dragColumns’).click()#包含整个类
有 参考其他的博主内容哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金玉满堂@bj

朋友,你的打赏就是我创作的认可

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值