美文网首页
Python+selenium之定位元素的方法

Python+selenium之定位元素的方法

作者: lily_5945 | 来源:发表于2020-06-09 17:50 被阅读0次

网页自动化最基本的要求就是要定位到各个元素,然后才能对该元素进行各种操作(输入,点击,清除,提交等),以下是整理的常用的定位元素的方法

一,单数定位方法(遇到复数,默认取第一个)

1,通过id定位元素

如果id不是动态的,一个页面的id是唯一的。最简单的定位方式。
注意:有些id值是动态变化的,则不能使用该方法定位。

drive.find_element_by_id('id_value')
2,通过class_name 定位元素

注意:当 class 是由多个空格隔开组成,取其中一个即可。

drive.find_element_by_class_name('class_name_value')
3, 通过name 定位元素
drive.find_element_by_name()
4,通过tag_name 定位元素

标签名字最容易重复,不过,当定位一组数据时,可使用。

drive.find_element_by_tag_name()
5,xpath 定位:

获取绝对路径的方法:1,按F12打开控制台;2,Ctrl+Shift+C,点击要定位的元素;3,在代码区域右击,选择Copy-CopyXpath

drive.find_element_by_xpath( )
6,css_selector 定位(本人业务场景中使用最多的方法):

定位id,属性前面加" # ",定位class,属性前面加“ . ”,层级之间可以用拆分符隔开,比如 > +

drive.find_element_by_css_selector('#kk-tools-dialog > li >span')
7,通过link文字精确定位元素

如:<a onclick="return false;" class="lb" name="tj_login" href="https://passport.baidu.com/v2/?login&tpl=mn&u=http%3A%2F%2Fwww.baidu.com%2F">登录</a>

drive.find_element_by_link_text("登录")
8,通过link文字模糊定位元素
find_element_by_partial_link_text("登")

二,复数定位

复数定位和单数定位方法一样,不同的是,find_element需要后面需要加 S ,即find_elements。当有多个相同的属性时,可以通过取下标来定位。如果不带下标,则返回的是一个list

drive.find_elements_by_css_selector('#kk-tools-dialog > li >span')[2]
drive.find_elements_by_class_name() #返回一个list
drive.find_elements_by_tag_name()

三,如何判断元素是否定位成功以及确定唯一性

打开控制台的Console页面,输入document.querySelectorAll(‘’),里面输入需要查找的属性,方法同css_selector。列如:

document.querySelectorAll('#kk-tools-dialog >ul >li >span')

查找结果如下图,可以看出属性定位到12个元素,鼠标放在元素上可以查看元素对应的内容。需要使用哪个带上下标即可


微信图片_20200609174945.png

相关文章

网友评论

      本文标题:Python+selenium之定位元素的方法

      本文链接:https://www.haomeiwen.com/subject/lvqetktx.html