都返回为bool值,意味着可以if xxx:
.is_selected():用于检判断单选或者多选框是否被选中
radio: 单选框(只能选一个)
checkbox: 复选框 (可以多选)
.is_enable(): 判断元素是否可点击
.is_display():判断一个元素是否显示
但有时候上面三种都无法判断:
需求是进入这个页面,需要智能检测视频按钮状态,并保持按钮关闭
如下,按钮打开或关闭,三种字段的值都没有变化,所以不能直接用上面的方法
但按钮打开的时候,会出现 ‘美颜’ 这个元素
所以可以通过判断‘美颜’元素是否存在,智能检测按钮状态
# 如果"美颜"元素存在,证明视频按钮打开,就点击按钮关闭,否则按钮已经关闭,继续往下走
def off_videobtn(dr):
if dr.find_elements('-android uiautomator', 'new UiSelector().text("美颜")'):
dr.find_element('id','com.tencent.wemeet.app:id/gi').click()
else:
pass
这里最开始用了一个find element,当视频按钮打开时可以跑通,但关闭的状态下,找不到美颜元素会报错
后来查了下可以改成elements,因为element找不到元素会直接报错,不会往下走,但是elements的话没找到会返回一个空列表,可以继续往下走
总结:
appium判断元素的方法:
- .is_selected()
- .is_display()
- .is_enable()
- 看按钮打开或关闭后是否有相关元素出现并用elements查找进行判断