UI自动化-selenium定位
WebDriver是一套完整的类库,提供api 主要包括下面两部分
(1)查找元素
(2)操作元素
pip install selenium==3.14.0
pip uninstall selenium
pip show selenium
(1)查找元素
id、name、 class_name、tag_name 元素属性定位
link_text、partial_link_test 超链接
xpath、元素路径定位
css :css选择器定位
步骤
(1)导包
(2)浏览器对象实例化
(3)打开项目
(4)点位元素
(5)操作元素
(6)等待
(7)关闭浏览器
路径:
第一种:URL=“E:\\课堂\\注册A.html”
第二种:URL=r“E:\课堂\注册A.html” r修饰的字符串不做转义
第三种:URL=“file://E:/课堂/注册A.html”
url = r"path"
\ 反斜杠为转义字符,所有必须要\\
\:是目录结构
/ 除法用于计算5/3
元素定位
1.id
说明:通过元素的id展性来定位
前提:元素必须有id属性
方法:driver.find_element_by_id(id值)
2 .name
说明:.通过元素的nams展性来定位
前提:元素必须有name属性
方法:driver.find__element_by_name (name真)
3.class_name
说明:通过元素的clasa属性来定位
前提:元素必须有class属性
方法:driver.find__element_by_class_name (name值)
4.tag_name
说明:通过元素的标签名称,如:..<input><a>.-.
前提:..元素标签名在当前页面必须唯一元素...或定位符合条件第一个元素
方法:driver.find_eiement_by_tag_name (标签名称)
5.link_text
说明只定位超链接<a>标签
注意:必须为全部匹配文本
方法:find_eiement_bv_link_text(全部文本值)
6. partial_link_text
说明:它为link_text定位的补充
注意:为模糊匹配
方法:find_element_by_partial_link_text (局部文本)
(find_elements_by_xxx())[1] 返回列表下标取值 先加括号
Xpath
策略:
(1)路径:绝对路径 相对路径 //span[contains(text(),'永恒集团')] //span[text()='永恒集团'] //div[@class="u_sp"]
(2)利用元素属性定位
(3)利用层级与属性定位
(4)利用属性与逻辑定位 //div[@class="u_sp" and @name='xxx']
取xpath最后一个book元素book[last()]
取xpath最后第二个book元素book[last()-1]
延伸
//span[text()='永恒集团']
//*[contains(@attribute,'xxx')]
//*[starts-with(@attribute,'xxx')]
css
id #id
class .class
元素选择器 element
属性 [attribute=value](1)
层级 p input后代 p>input 子
延伸 [attribute^=value] 属性开头 [attribute$=value] 属性结尾 [attribute*=value] 属性包含
文本包含 a:contains('xx') 已经废除
属性值由多个空格隔开,匹配其中一个值的方法
driver.find_element_by_css_selector("input[class~='btn']")
通过兄弟节点定位
# driver.find_element_by_css_selector("div#u1>a:first-child").click()
# driver.find_element_by_css_selector("div#u1>a:nth-child(2)").click()
driver.find_element_by_css_selector("div#u1>a:last-child").click()
span input:last-child 定位span标签下,最后一个为input标签的元素
一、轴运算名称
ancestor:祖先结点(包括父结点)
parent:父结点
preceding:当前元素节点标签之前的所有结点(html页面先后顺序)
preceding-sibling:当前元素结点标签之前的所有兄弟结点(同级)
following:当前元素结点标签之后的所有节点(html页面先后顺序)
following-sibling:当前元素结点标签之后的所有兄弟结点(同级)
浙公网安备 33010602011771号