注:八大定位方式优先级
ID>name>css selector>xpath>class>tag name>link>
一、针对css selector>xpath的优先级,优先选择css,原因在哪些?
原因1:css是配合html来工作,它实现的原理是匹配对象的原理,而xpath是配合xml工作的,它实现的原理是遍历的原理,所以两者在设计上,css性能更优秀
原因2:语言简洁,明了,相对xpath
原因3:前端开发主要是使用css,不使用xpath,所以在技术上面,我们可以获得帮助的机会非常多
二、定位元素的注意事项
1、找到待定位元素的唯一属性;
2、该元素没有唯一属性,则先找到能被唯一定位到的父元素/子元素/相邻元素,再使用“>”," “,”+"等进行辅助定位;
3、不要使用随机唯一属性定位;
4、最重要的是多跟研发沟通,尽量把关键元素加上ID或者name,并减少不合理的页面元素,例如重复ID这样的事情最好不要发生;
三、css selector
HTML中:声明选择器,属性,属性值
1、ID选择器:#(id=“kw”)
driver.find_element_by_css_selector("#kw")
2、class选择器:. (class=“s_ipt”)
driver.find_element_by_css_selector(".s_ipt")
3、标签选择器:可以选中需要的标签,比如li
driver.find_element_by_css_selector("li.s_ipt")
4、分组选择器:用,分隔,选择一组HTML元素
driver.find_element_by_css_selector("#kw,li.s_ipt")
5、属性选择器:[]来定义,选择所有有title属性的元素
driver.find_element_by_css_selector("[title]")
driver.find_element_by_css_selector("li[title='ds']")