selenium模糊定位html元素,UI自动化学习笔记(Selenium元素定位)

一、如何进行元素定位?

元素定位就是通过元素的信息或元素层级结构来定位元素

二、元素定位方式有哪些?

Selenium提供了八种元素定位方式id

name

class_name(使用元素的class属性定位)

tag_name(标签名 )

link_text(定位超链接a标签)

partial_link_text(定位超链接 a标签 模糊)

xpath(基于元素路径)

css(元素选择器)

方式一:通过元素的id定位

说明:id定位就是通过元素的id属性来定位元素。

id定位方法:element = driver.find_element_by_id(id)

知识点

在前端,一般一个id值是唯一的,只属于一个元素

方式二:通过元素的name定位

说明:name定位就是根据元素的name属性来定位,HTML文档中name的属性值是可以重复的。

name定位方法:element = driver.find_element_by_name(name)

知识点有可能有多个元素共用一个name

但 find_element_by_name  只返回第一个匹配到name的元素

想返回多个的话,需要调用 find_elements_by_name 方法

方式三:通过元素的class定位

说明:class_name定位就是根据元素class属性值来定位元素。

class_name定位方法:element = driver.find_element_by_class_name(class_name)

知识点在前端,一般多个元素共用一个class

find_element_by_class_name 只返回第一个匹配到class的元素

坏处:当找不到元素则报错

方式四:tag_name定位

说明:tag_name定位就是通过标签名来定位

tag_name定位方法:element = driver.find_element_by_tag_name(tag_name)

# 如果存在多个相同标签,则返回符合条件的第一个标签

知识点多个元素同种HTML标签见怪不怪了

同样的, find_element_by_tag_name 返回第一个匹配到标签的元素

find_elements_by_tag_name 可以返回所有匹配到标签的元素

方式五:link_text定位

说明:link_text定位是专门用来定位超链接元素( 标签< /a>),并且是通过超链接的文本内容来定位元素

link_text定位方法element = driver.find_element_by_link_text(link_text)

# link_text:为超链接的全部文本内容

知识点find_element_by_link_text 是精确匹配,需要文本完全相同才能匹配

若需要返回全部匹配到的元素,也需要用 find_elements_by_link_text

方式六:partial_link_text定位

说明:partial_link_text可以使用局部来匹配元素,也可以使用全部文本内容匹配元素

partial_link_text定位方法:element=driver.find_element_by_partial_link_text(partial_link_text)

# partial_link_text:可以传入a标签局部文本-能表达唯一性

知识点find_element_by_partial_link_text 支持模糊匹配,包含文本则匹配成功

若需要返回全部匹配到的元素,需要find_elements_by_partial_link_text

方式七:通过xpath定位

说明:基于元素的路径

xpath 定位方法:element = driver.find_element_by_xpath(xpath)

方式八:通过css选择器定位

说明:css定位就是通过css选择器工具进行定位

css 定位方法:element = driver.find_element_by_css_selector(css_selector)

你可能感兴趣的:(selenium模糊定位html元素,UI自动化学习笔记(Selenium元素定位))