selenium定位元素方法
上一节我们学会了如何使用浏览器来查找网页元素,本节主要讲述如何将网页元素告知Selenium,并让它自动操控网页。
Selenium定位网页元素主要是通过元素的属性值或者元素在HTML里的路径位置,定位方式一共有8种:
# 通过属性 id 和 name 来实现登录
1) find_element_by_id()
2) find_element_by_name()
# 通过HTML标签类型和属性class实现定位
3) find_element_by_class_name()
4) find_element_by_tag_name()
# 通过标签值实现定位,partial_link用于模糊匹配
5) find_element_by_link_text()
6) find_element_by_partial_link_text()
# 元素的路径定位选择器
7) find_element_by_xpath()
8) find_element_by_cass_selector()
我们将8种定位方式分为4组,分组标准是以每种定位方式的优缺点来进行划分。具体的说明如下:
(1)find_element_by_id和find_element_by_name分别通过元素属性id和name的属性值来定位。如果被定位的元素不存在属性id或name,则无法使用这种定位方式。通常情况下,一个网页中,元素的id或name的属性值是唯一的,如果多个元素的id或name相同,这种定位方式只能定位第一个元素。
(2)find_element_by_class_name和find_element_by_tag_name分别通过元素属性class和元素标签类型进行定位。在一个网页里,属性class的属性值可以被多个元素使用,同一个元素标签也可以多次使用,正因如此,这两种定位方式只能定位符合条件的第一个元素。
(3)find_element_by_link_text和find_element_by_partial_link_text是根据标签值进行定位。比如单击豆瓣电影网的排行榜,通过网页的文字来对元素进行定位。若网页中的文字并不是唯一,那么Selenium也是默认定位第一个符合条件的元素。
(4)find_element_by_xpath和find_element_by_css_selector是由xpath和css_selector实现定位,两者是一个定位选择器,通过标签的路径来实现定位。标签的路径是指当前标签在整个HTML代码里的代码位置,比如里的第二个标签,又嵌套标签,那么的路径为body -> div[1] -> p。这种定位方式相对前面的定位较为精准,因为每个标签的路径都是唯一的。
领取专属 10元无门槛券
私享最新 技术干货