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:当前元素结点标签之后的所有兄弟结点(同级)

 

 
posted @ 2021-09-30 22:49  血染星辰  阅读(85)  评论(0)    收藏  举报