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‘ "))

时间: 2024-12-28 21:30:59

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

javascript判断元素存在和判断元素存在于实时的dom中的方法

今天(周六)下午我在公司加班时不知道要干什么,就打开公司的一个wordpress项目网站,想看下之前自己做的一个网页是否有问题. 打开网站首页,我习惯性的打开了chrome的调试工具,然后鼠标开始滚动页面,然后问题就出来了:页面无法向下滚动,调试工具的console里报了好多undefined的错误. 我马上意识到是我写的js代码错误的在首页被执行导致的问题,我的代码大致是这样: 1 if ($('#a')) { 2 // some code ... 3 $('#b').doSomething;

JS-004-JavaScript 操作常见 web 元素之四-判断元素显示状态

在日常的 web 编程或 UI自动化脚本编写过程中,经常会遇到判断页面元素的显示状态,以对应的执行相应的操作.此文主要以 js 判断页面元素的存在状态为例,简单叙述一下 js 是如何判断元素的显示状态的,敬请小主们参阅.若有不足之处,敬请大神们不吝指正,不胜感激! 多不言述,小二上码咯. 以下为简单的 HTML 源码,如下所示: 1 <html> 2 <head> 3 <meta http-equiv="Content-Type" content=&quo

jquery判断元素是否隐藏的多种方法

第一种:使用CSS属性 复制代码 代码如下: var display =$('#id').css('display'); if(display == 'none'){    alert("被你发现了,我是隐藏的啦!"); } 第二种:使用jquery内置选择器 假设我们页面有这么个标签, 复制代码 代码如下: <div id="test">< p>仅仅是测试所用</p>< /div> 那么,我们可以用以下语句来判断id

jQuery判断元素是否是隐藏的代码

if($("#elem_id").is(":hidden")) { } 实例代码1: 复制代码 代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title> New Document

jQuery判断元素是否隐藏

$(function() { $feedingRecord=$("#feedingRecord"); $feedingRecordDetail=$("#feedingRecordDetail"); $feedingRecord.click(function(){ if($feedingRecordDetail.is(":visible")==false){ alert(hide); }else{ alert(show); } }); }); 以上

jq判断元素是否显示

为了判断元素是否显示,jquery中用is()来实现, $(function(){ $(obj).bind('click',function(){ if(obj.is(:visible)){ //编写的代码 }else{ //编写的代码 } }) })

Appium - iOS 各种问题汇总

作者: Max.Bai 时间: 2014/10 Appium - iOS 各种问题汇总  1. Appium 滑动: swipe 有三种方式: 第一种:swipe JavascriptExecutor js = (JavascriptExecutor) driver; HashMap<String, Double> swipeObject = new HashMap<String, Double>(); swipeObject.put("startX", sta

Js - 判断元素是否隐藏、显示

判断元素是否隐藏.显示的方法,需要的朋友可以参考下 : 1.通过判断元素display属性状态值来实现 console.log($('div').css("display"));       // inlineif($('div').css("display") != 'none') { console.log('aaaaa');       // aaaaa $('div').hide();         console.log($('div').css(&qu

selenium常用的API(七)判断元素是否可见

web页面不可见的元素虽不在页面上显示,但是存在于DOM树中,这些元素webdriver也能找到. element.is_displayed()方法可以判断元素是否在页面上显示,如果显示返回True,否则返回False. 用于测试的HTML代码: <html> <head> <title>HTML中显示与隐藏元素</title> <meta http-equiv="Content-Type" content="text/h