码迷,mamicode.com
首页 > 移动开发 > 详细

appium +ios 判断元素是否存在,排除visible=“false”的数据

时间:2017-08-31 00:16:17      阅读:1245      评论:0      收藏:0      [点我收藏+]

标签:stat   数据   游戏   led   result   系统   过滤   匹配   self   

问题 想要判断name=xxx的元素是否存在,存在的话进行点击,结果页面并没有展示我要的元素时也提示找到了元素
 
原因 ios通过driver.find_element_by_name(“name值”),会找到visible=false的值(即不可见的元素),而实际再操作UI时,我们只想要visible=true的
 
driver.page_source部分信息如下:
 
 </XCUIElementTypeCell>
                  <XCUIElementTypeCell type="XCUIElementTypeCell" enabled="true" visible="false" x="0" y="-132" width="320" height="50">
                    <XCUIElementTypeStaticText type="XCUIElementTypeStaticText" value="游戏交易" name="游戏交易" label="游戏交易" enabled="true" visible="false" x="0" y="0" width="52" height="16"/>
                  </XCUIElementTypeCell>
 
 
解决方法 通过正则匹配判断结果
 
对找到的元素进行过滤,只要visible=true的,可以先获得页面的xml,然后进行正则匹配,查看是否有visible=“true”,且name=xxx的元素
 
代码如下:找到情况返回True,否则返回False
 
currentcontent=self.driver.page_source
result = re.search(label=" + catename + " enabled="true" visible="true", currentcontent)
if result is not None:
    return True
else:
    return False
 
备注:最开始是想用iOS的谓词来实现,但是我的手机ios 9.3系统没有生效,不知道是我系统原因,还是这么用就是有问题。代码如下
return self.driver.find_element((MobileBy.IOS_PREDICATE,"name == ‘xxx‘ AND visible == ‘true‘ "))

appium +ios 判断元素是否存在,排除visible=“false”的数据

标签:stat   数据   游戏   led   result   系统   过滤   匹配   self   

原文地址:http://www.cnblogs.com/meitian/p/7456100.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!