UI自动化定位常用实现方法代码示例

作者:铁扇公主 时间:2022-09-22 09:47:13 

8大基础定位

  • driver.find_element_by_id() # id定位

  • driver.find_element_by_name() # name定位

  • driver.find_element_by_class_name() # class名称定位

  • driver.find_element_by_tag_name() # 标签定位

  • driver.find_element_by_xpath() # xpath定位

  • driver.find_element_by_css_selector() # css定位

  • driver.find_element_by_link_text() # a标签的文本定位

  • driver.find_element_by_partial_link_text() # a标签的局部文本定位

xpath定位

//*[]:// 相对定位 * 匹配任意标签

第一种:id\class\name\其他属性,精确匹配

driver.find_element_by_xpath("//*[@id='']") # id与id的值
driver.find_element_by_xpath("//*[@class='']") # class和class的值<br data-filtered="filtered">driver.find_element_by_xpath("//*[@name='']")# naem和值<br data-filtered="filtered">driver.find_element_by_xpath("//*[@shuxingming='']")# 属性名和值

第二种:模糊匹配\层级\索引\逻辑运算

模糊匹配:

driver.find_element_by_xpath("//*[contains(text(),'测试')]") # 包含某些字符
driver.find_element_by_xpath("//*[starts-with(text(),'测试')]") # 以某些字符开头
driver.find_element_by_xpath("//*[ends-with(text(),'测试')]") # 以某些字符结尾
driver.find_element_by_xpath("//*[matchs(text(),'测试')]") # 正则匹配

层级:

driver.find_element_by_xpath("//*[@id='']/p")

索引:

driver.find_element_by_xpath("//*[@id='']/option[0]")

第三种:绝对定位

html/body/heard/div/divdiv/ul/li[2]/a 不推荐

css定位

第一种:id\class\标签名

#:id

.:class

driver.find_element_by_css_selector("#username") #id为username
driver.find_element_by_css_selector(".username") #class为username
driver.find_element_by_css_selector("iframe") #标签名为iframe

第二种:

索引:

driver.find_element_by_css_selector("selet#nr>option:nth-child(1)") #标签名:nth-child(1)来定位子元素

层级:

driver.find_element_by_css_selector("selet#nr>option") #标签名:nth-child(1)来定位子元素

逻辑运算:

driver.find_element_by_css_selector("input#nr[id=''][class='']") #不用and连接,写在一起即可

定位多组元素

使用 find_elements ,结果为列表,使用下标索引方式取值

names=driver.find_elements_by_name("username")
print names[1]

来源:https://www.cnblogs.com/princessironfan/p/13667957.html

标签:UI,自动化,定位
0
投稿

猜你喜欢

  • 安装PHP可能遇到的问题“无法载入mysql扩展” 的解决方法

    2023-09-09 04:37:39
  • ASP获取刚插入记录的自动编号ID

    2008-11-17 20:41:00
  • CSS双线边框研究

    2009-09-03 12:12:00
  • SQL Server取得网站路径的几种方法及比较

    2008-12-09 14:15:00
  • 一文了解Django缓存机制

    2023-08-18 06:34:21
  • Python可视化学习之seaborn绘制矩阵图详解

    2023-02-27 09:25:36
  • python中的线程threading.Thread()使用详解

    2021-02-25 21:38:38
  • 解读Opencv中Filter2D函数的补全方式

    2022-06-16 23:11:15
  • 了解WEB页面工具语言XML(六)展望

    2008-09-05 17:19:00
  • 四大因素扼杀了中国人的创造力

    2008-09-11 18:05:00
  • XHTML 1.0:标记新的开端

    2023-08-04 21:59:30
  • Python 中的装饰器实现函数的缓存(场景分析)

    2022-07-30 01:37:08
  • TensorFlow如何指定GPU训练模型

    2022-05-31 10:03:21
  • Python中暂存上传图片的方法

    2022-04-05 20:53:08
  • 如何利用Python实现一个论文降重工具

    2021-02-04 08:11:28
  • python超详细实现完整学生成绩管理系统

    2022-08-25 08:59:08
  • MYSQL数据库常用命令集合

    2009-02-26 16:01:00
  • php简单浏览目录内容的实现代码

    2023-10-25 01:32:43
  • python爬取内容存入Excel实例

    2022-06-05 16:31:47
  • python正则表达式的使用

    2023-07-21 07:42:15
  • asp之家 网络编程 m.aspxhome.com