做App UI自动化的时候,appium使用最频繁的应该就是定位元素了。
Appium常用的元素属性值:
resource-id:resource-id属性一般ID是唯一的,如果元素中有ID的话,优先考虑ID定位:
定位方法:
1 | driver.find_element_by_id( 'resource-id属性值' ) |
class_name:通过元素class属性值来定位元素:
定位方法:
1 | driver.find_element_class_name( 'class_name属性值' ) |
xpath:通过元素的xpath来进行定位:
定位方法:
1 | driver.find_element_by_xpath( "//*[@text='value']" ) |
if 定位不到元素会出现NoSuchElementException,我们可以进行组合定位:
1 | driver.find_element_by_xpath(" / / * [@text = 'value' and @ class = 'classvalue' ]”) |
其中:
1 2 3 4 5 6 7 | / / # 全局范围 * # 增加一个筛选的标签条件 [] # 添加筛选的条件 @ #表示添加的条件是属性 text #通过文本来查找 value #属性的值 and # 可以进行多个条件的关联 |
通过以上的3个方法可以获取元素的进行,下面就可以对元素进行对应的操作。
Appium元素的操作:
1 | driver.find_element_by_id( 'resource-id属性值' ).click |
# 对应resource-id进行点击
1 | driver.find_element_by_id( 'resource-id' ).clear |
# 对应的resource-id进行清除
1 | driver.find_element_by_class_name( 'android.widget.EditText' ).send_keys( 'value' ) |
# 对应的class_name进行输入value
Appium获取元素的信息:
1 | driver.find_element_by_id( 'resource-id' ).text |
# 获取resource-id的文本
1 | driver.find_element_by_id( 'resource-id' ).location |
# 获取resource-id的位置,返回字典,x,y是元素左上角的坐标
1 | driver.find_element_by_id( 'resource-id' ).size |
# 获取resource-id元素的大小,返回字典,包含width,height
1 | driver.get_attribute(attribute) |
# attribute:可以获取resource-id,class,text,package,name
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了