1.    XCUIApplication *app = [[XCUIApplication alloc] init];

App为查询的入口,当界面发生变化,查询数也会随之更新。

即使是先前存储的XCUIElement也会在下一次使用的时候,根据查询Element所用的Query再次查询后执行操作。

2.   UIView.Hidden = YES的时候,可以通过Query找到这个View。

3.    UIView被遮挡时,仍然可以使用Query找到这个View。

4.    [XCUIElement tap]可能会失效。

Tap流程:1)查询这个控件 2)将这个控件滑动到屏幕可见范围 3)向这个控件捕获一个可点击点发送点击消息

理论上使用Tap的时候不用考虑在可滑动控件(Tableview, Scrollview, etc)内的控件是否在屏幕内,只需要考虑这个控件是否有可点击的点(isHittable = YES)

如果被遮挡,会抛出异常Unable to find a hittable point to tap。如果在不可滑动控件内,会抛出异常Unable to scroll to element。

实际上,可能经常要处理滑动的问题。

当被遮挡时,若不被点击的对象不冲突,可以使用XCUICoordinate来点击屏幕上的点进行点击。

但是使用点点击的时候,不会自动将控件滑动到屏幕内,当点击屏幕外的点击的时候,目前的操作是会出现滑动操作。

所以使用点点击的时候,需要注意将控件滑动到屏幕内。

注:TableviewCell和CollectionviewCell这些可以重用的控件,在重用池也会被查询到,比较难处理。

注:使用XCUICoordinate进行点击的时候不建议使用左上角(在5S上使用时容易失效)

5.    高度自定义的控件现无法被查询到。

6.    处理有图像的控件

若图像来自于非本地,通常无标识符。

若图像来自于本地,这类控件的Label通常为图像的名称(不兼容字符变成空格)。

在XCode7.3中,当通过事件,图像发生变化的时候,这个Label不会发生变化,所以无法通过这个控件的图像来检测状态,如果是Button,可以使用iSSelected查询点击态。

7.    UITests只能处理对应App的行为,若发生跨App操作(如第三方登录)会在查询时抛出异常。

8.   在XCode7.3中, 对于可重用控件,重用的和初始化的极有可能在查询时查询树结构不同,所以根据情况需要区别处理。

常见问题

  1. UITextField等需要先Tap再TypeText,有时模拟器键盘不弹出会导致TypeText崩溃。

make sure 'Hardware -> Keyboard -> Connect hardware keyboard' is off.

2.  常见错误之一


      录制时,操作了不错可查询控件(如isAccessibilityElement为No的控件),会产生这种错误。

3. 获取屏幕尺寸的问题

UI Test目前在另一个App进程里运行,在这个进程中使用UI相关的类会产生错误。

如通常获取屏幕尺寸的方法为[UIScreen mainScreen].bounds.size。但是这在UI Test中获取的屏幕尺寸是错误的,目前总为4s的尺寸。

如果需要获取屏幕尺寸,比较精确的方法是通过XCUIApplication查询windows中查询mainWindow这个控件,然后获取mainWindow.frame就是屏幕的尺寸。

3. UITest笔记的更多相关文章

  1. git-简单流程(学习笔记)

    这是阅读廖雪峰的官方网站的笔记,用于自己以后回看 1.进入项目文件夹 初始化一个Git仓库,使用git init命令. 添加文件到Git仓库,分两步: 第一步,使用命令git add <file ...

  2. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  3. SQL Server技术内幕笔记合集

    SQL Server技术内幕笔记合集 发这一篇文章主要是方便大家找到我的笔记入口,方便大家o(∩_∩)o Microsoft SQL Server 6.5 技术内幕 笔记http://www.cnbl ...

  4. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  5. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  6. NET Core-学习笔记(三)

    这里将要和大家分享的是学习总结第三篇:首先感慨一下这周跟随netcore官网学习是遇到的一些问题: a.官网的英文版教程使用的部分nuget包和我当时安装的最新包版本不一致,所以没法按照教材上给出的列 ...

  7. springMVC学习笔记--知识点总结1

    以下是学习springmvc框架时的笔记整理: 结果跳转方式 1.设置ModelAndView,根据view的名称,和视图渲染器跳转到指定的页面. 比如jsp的视图渲染器是如下配置的: <!-- ...

  8. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  9. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

随机推荐

  1. pod导入第三方库头文件不能自动联想的解决方法

    使用了一段时间CocoaPods来管理Objective-c的类库,方便了不少.但是有一个小问题,当我在xcode输入import关键字的时候,没有自动联想补齐代码的功能,需要手工敲全了文件名,难以适 ...

  2. mysql优化-----索引覆盖

    一道面试题: 有商品表, 有主键,goods_id, 栏目列 cat_id, 价格price 说:在价格列上已经加了索引,但按价格查询还是很慢,问可能是什么原因,怎么解决? 答:在实际场景中,一个电商 ...

  3. download file by python in google colab

    https://stackoverflow.com/questions/15352668/download-and-decompress-gzipped-file-in-memory You need ...

  4. Java中的Lock

    同步机制是Java并发编程中最重要的机制之一,锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能防止多个线程同时访问共享资源(但是也有例外,比如读写锁).Java中可以使用synchroniz ...

  5. Oracle:通过dbv查看数据文件是否有坏块

    我们备份的数据文件,可以通过oacle自带的dbv工具来查看是否是好的. 下面实验如下: 环境:oracle10.2.0.1 1.检查数据文件是否有坏块 [oracle@app orcl]$ dbv ...

  6. Java内存溢出?

    内存溢出? https://www.cnblogs.com/crossoverJie/p/9552119.html 前言 OutOfMemoryError 问题相信很多朋友都遇到过,相对于常见的业务异 ...

  7. nginx开发_配置项

    nginx开发笔记_配置项 模块的配置项即nginx.conf中的指令,HTTP模块指令可以分为三个级别: main级,直接写在http{}块中的指令 server级,写在server{}块中的指令 ...

  8. 【HDU 3613】Best Reward

    [题目链接] 点击打开链接 [算法] 正反两遍EXKMP,即可 [代码] #include<bits/stdc++.h> using namespace std; #define MAXC ...

  9. HNOI2008 明明的烦恼 (purfer序列 + 组合数学)

    传送门 这道题题意描述很清楚,不过我自己做的时候确实是一头雾水……又看了题解,发现要用到一个新知识,叫purfer序列. 我们来简单说一下什么是purfer序列.它可以被看作一种树的表现形式.一棵含有 ...

  10. Android Service完全解析,关于服务你所需知道的一切(下) (转载)

    转自:http://blog.csdn.net/guolin_blog/article/details/9797169 转载请注册出处:http://blog.csdn.net/guolin_blog ...