web自动化之定位
2024-09-04 05:34:46
UI自动化必不可少的操作——元素定位
- 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的值
driver.find_element_by_xpath("//*[@name='']") # naem和值
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]
做一棵小草,谁也撼动不了………
如果您觉得本篇文章还不错,欢迎点赞,转发分享,感谢(*^_^*)
最新文章
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(60)-系统总结
- mysql临时表的产生
- VS与ultraedit 正则表达式替换
- Mysql手册—基本规范与数据类型
- TemplateBinding vs TemplatedParent【PluraSight】
- php 命名空间(要求php5.3以上)
- 关于asp.net简单的下载问题
- .Net之用户控件笔记
- 第一个Jsp页面,基于普元EOS
- spark核心优化详解
- spring-boot mybatis配置
- PHP----------linux下安装opcache.
- 使用Redux DevTools浏览器插件调试redux
- wim2008 让FTP防火墙可用性配置
- C#基础第七天-作业答案-利用面向对象的思想去实现名片-动态添加
- API网关Kong系列(二)部署
- Python笔记 #16# Pandas: Operations
- lintcode-427-生成括号
- 为何php curl post模式发送数据速度变慢了?我来说说原因
- js运算浮点数
热门文章
- Solution -「洛谷 P4389」付公主的背包
- 01 MySQL数据库安装(Windows+Mac)
- 【流行前沿】联邦学习 Federated Learning with Only Positive Labels
- 前端提交数据到node的N种方式
- php使用CURL进行模拟登录采集数据
- 使用传统的三层架构出现的问题.引入Spring底层实现原理来解决(工厂模式+反射+XML配置文件/注解)
- Android SugarORM(1)
- Kubernetes:更新与回滚
- VUE学习笔记(李天禹老师版本)
- 目前数据可视化工具排名如何?好用的BI可视化软件