首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从XCUIElement中提取信息

从XCUIElement中提取信息
EN

Stack Overflow用户
提问于 2015-10-23 18:13:36
回答 3查看 1.3K关注 0票数 2

如果我试图编写一个不依赖于标签或其他特定于值的元素的通用测试,我如何获得这些信息?比如,如果我要点击一个表视图单元,需要一些信息从那里稍后。想找出哪个细胞被窃听了。如何使用XCUIElement从它中获取标签?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-10-23 19:41:53

您可以从XCUIElement中提取的信息仅限于协议中的信息。其中最著名的是identifiervaluetitle

您可以在生产代码中通过-accessibilityIdentifier设置-accessibilityIdentifiervalue属性可以从几个不同的路径中设置,但它通常是控件的活动状态。例如,选择器的选定元素。

您可以尝试使用可访问性检查器查看元素上已经设置的内容,然后使用查询查找该元素。

票数 1
EN

Stack Overflow用户

发布于 2017-03-17 21:37:50

您可以提取一些状态,例如accessibilityIdentifier、isHitable、value或其他什么,但不幸的是,您不能设置/更改任何这些状态。因此,很明显,您无法检测到XCUIElement是否已经被窃听。这是ui测试fw的一个很大的限制。

票数 0
EN

Stack Overflow用户

发布于 2016-11-18 00:46:30

Joe的答案应该是正确的,但他忽略了如何实际获得他指定的属性的值。

让我们假设我希望得到打印我的应用程序的导航条的字符串。

我所做的是为我的导航栏创建了一个XCUIElement:

代码语言:javascript
复制
XCUIApplication *app = [[XCUIApplication alloc] init];
XCUIElement *navBarTitle = [app.navigationBars elementBoundByIndex:0];

然后在创建navBarTitle对象之后放置一个断点,并使用调试控制台输出navBarTitle对象的详细信息:

在调试控制台的打印中可以看到,有一个名为标识符

为了从该对象中提取该字符串,我使用以下方法创建了一个NSString对象:

代码语言:javascript
复制
NSString *nameofuser = [navBarTitle valueForKey:@"identifier"];

我使用了XCUIElement navBarTitle,然后使用了valueForKey方法。valueForKey提取密钥标识符的字符串值。

您可以在这里阅读此方法:NSKeyValueCoding

valueForKey是解锁此question....pun的答案的关键:)

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33308915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档