Selenium定位元素

参考书籍:python自动化开发实战 - 黄永祥

一、通过属性id和name来实现定位:

browse.find_element_by_id()
browse.find_element_by_name()

find_element_by_id和find_element_by_name分别通过元素属性id和name的属性值来定位。如果被定位的元素不存在属性id或name,则无法使用这种定位方式。通常情况下,一个网页中,元素的id或name的属性值是唯一的,如果多个元素的id或name相同,这种定位方式只能定位第一个元素。

二、通过html标签类型和属性class实现定位:

browse.find_element_by_class_name()
browse.find_element_by_tag_name()

find_element_by_class_name和find_element_by_tag_name分别通过元素属性class和元素标签类型进行定位。在一个网页里,属性class的属性值可以被多个元素使用,同一个元素标签也可以多次使用,正因如此,这两种定位方式只能定位符合条件的第一个元素。

三、通过标签值实现定位,partial_link用于模糊匹配

browse.find_element_by_link_text()
browse.find_element_by_partial_link_text()

find_element_by_link_text和find_element_by_partial_link_text是根据标签值进行定位。比如单击豆瓣电影网的排行榜,通过网页的文字来对元素进行定位。若网页中的文字并不是唯一,那么Selenium也是默认定位第一个符合条件的元素。

四、元素的路径定位选择器

browse.find_element_by_xpath()
browse.find_element_by_css_selector()

find_element_by_xpath和find_element_by_css_selector是由xpath和css_selector实现定位,两者是一个定位选择器,通过标签的路径来实现定位。标签的路径是指当前标签在整个HTML代码里的代码位置,比如<body>里的第二个<div>标签,<div>又嵌套<p>标签,那么<p>的路径为body -> div[1] -> p。这种定位方式相对前面的定位较为精准,因为每个标签的路径都是唯一的。

五、如果想要获取全部符合条件的元素

browse.find_elements_by_id()
browse.find_elements_by_name()

browse.find_elements_by_class_name()
browse.find_elements_by_tag_name()

browse.find_elements_by_link_text()
browse.find_elements_by_partial_link_text()

browse.find_elements_by_xpath()
browse.find_elements_by_css_selector()

 区别就是elements和element。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值