首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS UI 自动化测试原理以及在 Trip.com 应用实践

个属性是为了让 UIImageView 和 UIView 支持 Accessibility 功能,但仅设置这个属性并不能使这两个视图在 Accessibility 元素层级结构可见。...让 App 支持辅助功能 使用 Accessibility Inspector 前文中提到 Apple 对于视图元素会默认审查能够通过 VoiceOver 播放文字视图元素,而对于 UIImageView...而当我们将 UIImageView 和 UIView isAccessibilityElement 属性设置 true 时, UIImageView 和 UIView 元素才能在元素层级可见。...Accessibility 视图层次结构可见。...,是管理 Test App 生命周期实例对象,可以通过对象获取 Accessibility 视图层级结构,通过 XCTAssertTrue 断言元素是否存在。

2.1K40

iOS_单元测试二之UITests

常用来查询UI上元素 XCUIElementQuery:代表一系列可查询UI元素 XCUIElement:代表具体UI元素 建一个UITests类: 那些setUp和tearDown方法这里就不一一赘述了...{ // 在UI测试,当出现故障时,最好立即停止 continueAfterFailure = false // UI测试必须启动它们测试应用程序。...true // 2、超时之前程序转为特定状态:返回true // 3、超时后:返回false let result = app.wait(for: .runningForeground, timeout...XCUIElement在应用程序UI元素 let element: XCUIElement = self.app.cells.staticTexts["UnitTests"] // 断言Element...// 创建并返回一个新坐标,坐标将通过将偏移量乘以元素大小添加到元素原点来计算其屏幕点 let coordinate: XCUICoordinate = element.coordinate

74620
您找到你想要的搜索结果了吗?
是的
没有找到

Xcode 7 自动测试XCTestCase

不仅如此,因为添加完备可用性支持对于开发者来说也是不小额外工作量,所以除非应用有特殊使用场景,对于 Accessibility 支持和重视程度都十分有限。...同样地,我们还有像是 TextField,Cell 之类类型,完整类型列表可以在这里找到。类似这样从 app 寻找元素方法,所得到返回是一个 XCUIElementQuery 对象。...当得到一个可用 XCUIElementQuery 后,我们就可以进一步地获取代表 app 具体 UI 元素 XCUIElement 了。...和 XCUIApplication 类似,XCUIElement 也只是 app UI 元素在测试框架代理。...我们生成 Query,然后在通过下标或者是访问方法获取时候才真正从 app 寻找对应 UI 元素。这就是说,随着我们 UI 变化,同样 query 也是有可能获取到不用元素

1.7K70

UI Browser Mac (Apple辅助功能和GUI脚本助手)

它为你带来都是即安全又方便使用功能呢,UI浏览器是Apple辅助功能和AppleScript GUI脚本技术最终助手。...id=MjU2NjEmXyYyNy4xODYuMTI0LjQ%3D功能介绍辅助功能和GUI脚本终极助手PFiddlesoft具有探索,监视和控制Macintosh计算机上运行应用程序图形用户界面的无与伦比经验...现在,自2003年以来,PFiddlesoft通过UI浏览器在macOS上我们提供了专业知识,UI浏览器是一种支持Apple辅助功能和GUI脚本技术实用程序。...它使您可以编写简单AppleScript脚本来管理大多数Macintosh应用程序,这些脚本可以自动执行其窗口,菜单,按钮和其他用户界面元素即使目标应用程序本身无法编写脚本也是如此。...您可以在熟悉macOS浏览器视图中一目了然,所有这些视图均位于应用程序包含层次结构,可轻松浏览窗口,工作表,抽屉,对话框和其他视图

1.3K20

5个Tips让你Power BI报告更吸引人

基本报告筛选器面板: 可视级别筛选器 –仅在选定可视级别过滤数据,如果您希望某些背景(图表不可见)数据仅用于过滤,则功能特别有用。 页面级筛选器 –适用于页面上所有元素。...高低视角–层次结构 层次结构是使用相同可视化效果显示各种粒度级别的数据分析一种好方法。...有三种使用层次结构方法: 它们可以来自数据源(通常OLAP / Tabular),因此基本上存在于数据模型 它们可以简单地基于日期和时间数据 -在这里Power BI对我们来说是一件好事,并允许将任何时间数据呈现为年...掌握了一些信息之后,只需注意出现在图表角上小箭头,即可用于在层次结构级别上下移动: 项目报告时间每月视图 项目报告时间每周视图 相同可视化和报告用于实现不同视图。...总结 上面介绍概念是非常基本建议,您在创建报表时可以使用这些建议,我在这里收集了它们,因为它们也是基于我们公司设计分析报告经验而建立。 现在,它们已被项目管理,财务和开发实践的人们成功使用。

3.5K20

解放你双手—iOS自动测试基础

它每次都会新起一个进程,这会多花一些时间,但是能保证测试应用时状态是干净,这样你需要处理变量就少了些。 XCUIElement。这是你正在测试应用UI元素代理。...每个元素都有类型和标识符,结合二者就能找到应用UI元素。所有的元素都会嵌套在代表你应用。...否则当你视图访问元素时,测试就会失败。 例外是exists属性,你可以使用这个属性来检查一个元素是否展示在树。 这对于断言很有用。.....)判断不等,[a1 isEqual:a2]值False时通过; XCTAssertEqual(a1,a2, format...)判断相等(当a1和a2是 C语言标量、结构体或联合体时使用,实际测试发现...其实能做事情远不止不这些,帮助发现更多问题和定位问题一直是有东西可以深挖,这些辅助东西能让测试效果更佳,真正得产品质量提供保证。

2.5K50

【Power BI VS Tableau】——可视化篇(上)

打个不恰当比喻: Tableau在Excel数据透视图表式【行、列、值】拖拽作图基础上,把行、列自身和交叉交互,元素属性(坐标、颜色、辅助工具)自由度和灵活性发挥到了极致; Power BI则把...Tableau Excel Tableau逻辑是,提供最基础样式,同时将图表元素设计功能统一抽取出来,赋予每一个图表同等功能。...如下图所示,图表层面的各种辅助工具都开放给大家。元素层面,如轴、坐标、数值等颜色、大小、标签、角度等也都一视同仁。...而这背后其实反映是Tableau在轻量化分析计算能力灵活和强大。 Power BI: 可视化逻辑层次依次是:视觉对象——报告——仪表板。...一个种常见用法,即创建一个度量值,当满足一定条件时,不显示,或显示其他度量值,就在一定程度上改变了默认视觉效果。

3.1K30

【译】W3C WAI-ARIA最佳实践 -- 控件

当一个对话框关闭时,焦点返回到唤起对话框元素上,除了: 唤起元素不复存在,此时,焦点被设置在逻辑工作流程另一个元素上。...如果选项卡列表是水平,它不会监听 Down Arrow 或 Up Arrow 光标键,即使焦点在选项卡列表内,使用这些键仍会提供浏览器常规滚动功能。...树视图 一个树视图呈现为一个分层列表。层次结构任何项目都可能有子项,并且有子项元素,可以展开或折叠来显示或隐藏子项。...例如,在使用树视图显示文件夹和文件文件系统导航器,代表文件夹项目能够被展开文件夹内容,这些内容可能是文件、文件夹,或两者都有。 理解视图一些术语包括: 节点 在树结构项目。...每个作为父节点拥有 treeitem 元素 aria-expanded 设置 false,当节点处于关闭状态,并设置 true 时,节点是在打开状态。

4.5K30

【Java 21 新特性】顺序集合(Sequenced Collections)

因此,对遇到顺序支持在类型层次结构中分散,使得在API中表达某些有用概念很困难,即不能在Collection描述具有遇到顺序参数或返回值。...例如,MapkeySet方法返回一个Set,即使实际返回实现不支持添加操作。 另一种方法是通过重新调整接口来保持添加操作独立性。...这将导致在结构上有很薄语义新接口类型(例如AddableCollection),在实践没有用处,并且会使类型层次结构变得混乱。 测试 我们将在JDK回归测试套件添加一套全面的测试。...风险和假设 在继承层次结构中高层次地引入新方法可能会导致对明显方法名称(如reversed()和getFirst())冲突。...测试 我们将向JDK回归测试套件添加一套全面的测试。 风险和假设 在继承层次结构引入新方法存在冲突风险,例如reversed()和getFirst()这样明显方法名称。

17710

使用 Material Design 组件实现 Material 动效

如果您熟悉 Android 共享元素过渡,它与容器转换设置非常相似。 首先,确定两个共享元素视图,并为每一个视图添加 过渡名称。...Material 组件提供了两个过渡辅助: Hold 和 MaterialElevationScale,以平滑地将要被替换 Fragment 设置动画。...如果您发现您返回动画没有执行,可能是在共享元素就绪之前开始了过渡。 接下来进入我们搜索页面。...Fragment 进入过渡使用相同 forward 值 - true,当前 Fragment 重入过渡和搜索 Fragment 返回过渡也是如此。...接下来,默认情况下,过渡会在场景根层次结构所有子视图上运行,这意味着一个共享轴过渡会应用于邮件列表上每一封邮件以及搜索页面的每一个子视图

1.9K20

React面试基础

1、React是什么 React是一个数据提供渲染HTML视图开源JavaScript库。拥有虚拟DOM、组件化设计模式、声明式代码、单向数据流、使用JSX描述UI信息等特点。...3、Reactkeys和diff算法 keys是React用于追踪元素被修改、添加或移除辅助标识。...diff算法原理: 将树形结构按照层级分解,只比较同级元素。 给列表结构每个单元添加唯一key属性,方便比较。...我们可以为添加ref属性然后在回调函数接受元素在DOM树句柄,值会作为回调函数第一个参数返回: class CustomForm exrends Component { handleSubmit...input包含了一个ref属性,属性声明回调函数会接收input对应DOM元素,我们将其绑定到this指针以便在其他类函数中使用。

1.5K20

Ask Apple 2022 与 SwiftUI 有关问答(下)

image-20221031081829661在辅助状态隐藏图像Q:对于辅助功能,Image(decorative:) 和 .accessibilityHidden 之间是否有区别?...在更复杂 UI ,由于视图更新速度过快,性能( 至少在 macOS 上 )迅速下降。A:有不同策略。ObservableObject 是使视图视图层次结构失效( 引发重新计算 )单元。...解决了之前一大遗憾。如此一来,边栏视图样式自由度获得了极大提高。...将视图功能分散到函数、更小视图结构以及视图修饰器当中是很好解决方法。...但这个滚动有两大问题,1、是一个未公开半成品,有可能会被从 SwiftUI 框架移除;2、不支持懒加载,即使和 Lazy 视图一起使用也会一次性加载全部视图

14.7K30

设计模式 | 行为型 | 访问者模式

访问者模式可以用来梳理辅助行为业务逻辑。 当某个行为仅在类层次结构一些类中有意义,而在其他类没有意义时,可使用模式。 ......当你想要遍历一些复杂对象结构(例如对象树),并在结构每个对象上应用访问者时,这些信息可能会有所帮助。 缺点: 代码复杂度暴增。 每次在元素层次结构添加或移除一个类时,你都要更新所有访问者。...每个无法在元素层次结构实现行为创建一个具体访问者类并实现所有的访问者方法。 客户端必须创建访问者对象并通过 “接收” 方法将其传递给元素元素类只能通过访问者接口与访问者进行交互。...每个无法在元素层次结构实现行为创建一个具体访问者类并实现所有的访问者方法。...每个无法在元素层次结构实现行为创建一个具体访问者类并实现所有的访问者方法。

20610

PowerBI DAX MVC 设计模式 导论

删除一个可视化图表时,它而做度量值是否可以安心删除? (如果其他地方在用就不能删除,但你不知道) 为了做一个图,要做一个辅助表; 那为了做100个图呢,辅助表巨多,怎么管理?...注意: 视图模型与展现直接相关,而与业务无关。 视图表: 为辅助展现而定义表。 一个视图模型中有多个视图表。 如: 年龄分组。 参数表: 为辅助计算而定义表。 一个视图模型中有多个参数表。...值得强调是,可以注意这里面的依赖关系,这种依赖关系,可以形成良好层次结构。上层内容总是依赖于下层内容,这样,当用户需求改变时,不需要更改下层内容,而仅仅需要修改上层内容即可。...由于图放置于报告第三页(P3)且为该页第一个图(C1),讲放置于 #View 展现度量值命名为: View.P3.C1.Sales.ByAgeGroup 也正反应了这个事实。...; 视图: 用户看到可视化部分; 依赖于视图模型,视图提供维度; 依赖于展现度量值,视图提供计算结果。

2.5K22

PowerBI 2018年11月更新 支持PowerBI工程式开发

更新功能列表如下: 报表方面 矩阵支持折叠功能 在不同PBIX文件间复制粘贴图表 新筛选器面板 可访问性改进 分析方面 所有图表元素支持高级控件设置条件格式 QA支持相关问题 建模方面 新建模视图...新筛选器面板 对于已经存在报告是不会自动打开功能,需要手工启动,如下: ? 可以看到: ?...经过实际测试,功能在细微方面似乎还存在一些问题,例如:每个页面的格式都需要单独设置,如果已经有了一个20页报表,也是不小工作量。 ?...以字体例: ? 有三种设置方法: 色阶 规则 字段值 很多人恐怕并没有仔细研究过,这里最厉害是字段值,它意思是可以用某个字段来返回颜色。 例如,我们建立一个度量值: ?...有了模型视图功能后,我们可以将多事实表结构拆解多个星型模型,每个星型模型反应一个主题: ?

4.1K20

Jmix 2.1 发布

另一个新功能是可以在行内计算聚合值。需要配置聚合列时,请将 dataGrid 组件 aggregatable 属性设置 true,将 aggregation 元素添加到列并选择聚合类型。...视图设计器改进 下面我们看一下 Studio 功能和改进。 Studio 中最明显变化可能是包含了组件层次结构和属性 Jmix UI 工具窗口。...因为预览面板使用 JCEF 嵌入式浏览器,浏览器对项目、IDE和操作系统非标准配置细微差别很敏感,容易出现问题。现在,即使预览面板出问题也不会影响 Jmix UI 工具窗口和代码生成功能。...代码辅助 在此版本,我们引入了在视图类和 Spring bean 中注入依赖和 UI 组件全新方法。...▲代码辅助 有了这个功能,查找和注入可用 bean 和 UI 组件就变得非常容易了。

20110

《解构领域驱动设计》第一章

在预测能力维度,“难测”还不是最复杂层次,最高层次混沌,即根本不可预测。...钻取同样如此,不同之处在于它要判断钻取开关是否已经打开。在操作效果上,高亮与钻取仅针对当前视图,联动与筛选则会因为当前视图操作影响到同一张报表下相同数据集其他视图。...产品展现视图由诸多视图元素组合而成,这些视图元素属性通过界面元数据进行定制。...为此,我视图元素定义了抽象ViewElement接口,作为所有视图元素类型包括SelectView、CheckboxGroupView抽象类型。...图1-4 UI引擎模块类图 如此设计看似保证了视图元素呈现可扩展性,也遵循了单一职责原则,却因为抽象过度而增加了方案复杂度。

24020

最新iOS设计规范三|3大界面要素:栏(Bars)

例如,当人们查看全屏照片时,“照片”会隐藏导航栏和其他界面元素。如果你APP也用到了这个功能,切记要让用户使用简单手势(如点按)来恢复导航栏。 导航栏标题 在导航栏显示当前视图标题。...但是,无边框样式在标准标题导航栏可能无法很好地起作用,因为标题和按钮可能难以区分。iPad上拆分视图是一个例外,更多是通过在这两种视图中使用无边框样式来保持主视图辅助视图之间一致性。...标准返回按钮可以让用户通过信息层次结构来追溯自己步骤。但是,如果你想使用自定义返回按钮,请确保它样式仍然看起来是返回,且与界面的其余部分匹配。...标签栏是拉平信息层次结构并同时提供对多个对等信息类别或模式访问一种好方法。 严格使用标签栏进行导航。不要使用标签栏按钮来启用操作。如果需要提供对当前视图元素起作用控件,请改用工具栏。...因为模态视图为人们提供了一种单独体验,使他们在完成后便会被解雇,所以这不是应用程序整体导航一部分。 选项卡功能不可用时,请勿删除或禁用选项卡。

9.8K10

【UML 建模】UML建模语言入门-视图,事物,关系,通用机制

实现需求 : 系统功能. 作用 : 揭示系统内部设计和协作情况, 逻辑视图实现系统功能角度 : 静态结构 , 动态行为. 静态结构 : 描述 类, 对象, 关系....内部需求 : 开发难易程序, 重用可能性, 通用性, 局限性等; 层次越低组件通用性越好. UML对等视图 : 组件视图(Component View)....事务是UML面向对象基本模块, UML事务包括 结构事务,行为事务,组织事务,辅助事务. 事务在模型属于静态部分, 代表物理上或概念上元素. 1....包是一种将一系列元素分组机制;组件也是元素分组机制;  包与组件区别 : 包是一种概念上东西, 仅存在与开发阶段, 组件是一种物理元素,存在于运行时. 4....修饰作用 : 图形元素增加语义.

1.6K20

Go Map 【Go语言圣经笔记】

(ages, "alice") // remove elem ages["alice"] 所有这些操作是安全即使这些元素不在map也没有关系;如果一个查找失败将返回value类型对应零值,例如...例如,如果元素类型是一个数字,你可能需要区分一个已经存在0,和不存在而返回零值0,可以像下面这样测试: age, ok := ages["ages"] // 即使用key在map查找元素时,实际返回两个值...= xv { return false } } return true } 从例子可以看到如何用!ok来区分元素不存在,与元素存在但0。...is written incorrectly Go语言中并没有提供一个set类型,但是mapkey也是不相同,可以用map实现类似set功能。...这种技术对于想使用自定义key比较函数时候也很有用,例如在比较字符串时候忽略大小写。同时,辅助函数k(x)也不一定是字符串类型,它可以返回任何可比较类型,例如整数、数组或结构体等。

71820
领券