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


    问题 想要判断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' "))
  • 相关阅读:
    HTML <form> 标签的 accept-charset 属性
    SpringMVC中Controller跳转到另一个Controller方法
    DIV层+CSS实现锁屏
    工作组模式下专用队列(Private Queue)如何引用远程队列路径
    stl之deque双端队列容器
    百度之星资格赛——Disk Schedule(双调旅行商问题)
    android 无线模式下使用ADB调试
    HDU
    NoSQL 数据库产品学习总结(一)
    ThinkPad E431怎样关闭触摸板
  • 原文地址:https://www.cnblogs.com/meitian/p/7456100.html
Copyright © 2020-2023  润新知