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标签/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)预览时标签不可点收录于话题#个上一篇下一篇
转载请注明:http://www.sonphie.com/jbzd/14477.html