如果我试图编写一个不依赖于标签或其他特定于值的元素的通用测试,我如何获得这些信息?比如,如果我要点击一个表视图单元,需要一些信息从那里稍后。想找出哪个细胞被窃听了。如何使用XCUIElement从它中获取标签?
发布于 2015-10-23 19:41:53
您可以从XCUIElement中提取的信息仅限于协议中的信息。其中最著名的是identifier、value和title。
您可以在生产代码中通过-accessibilityIdentifier设置-accessibilityIdentifier。value属性可以从几个不同的路径中设置,但它通常是控件的活动状态。例如,选择器的选定元素。
您可以尝试使用可访问性检查器查看元素上已经设置的内容,然后使用查询查找该元素。
发布于 2017-03-17 21:37:50
您可以提取一些状态,例如accessibilityIdentifier、isHitable、value或其他什么,但不幸的是,您不能设置/更改任何这些状态。因此,很明显,您无法检测到XCUIElement是否已经被窃听。这是ui测试fw的一个很大的限制。
发布于 2016-11-18 00:46:30
Joe的答案应该是正确的,但他忽略了如何实际获得他指定的属性的值。
让我们假设我希望得到打印我的应用程序的导航条的字符串。

我所做的是为我的导航栏创建了一个XCUIElement:
XCUIApplication *app = [[XCUIApplication alloc] init];
XCUIElement *navBarTitle = [app.navigationBars elementBoundByIndex:0];然后在创建navBarTitle对象之后放置一个断点,并使用调试控制台输出navBarTitle对象的详细信息:

在调试控制台的打印中可以看到,有一个名为键的标识符。
为了从该对象中提取该字符串,我使用以下方法创建了一个NSString对象:
NSString *nameofuser = [navBarTitle valueForKey:@"identifier"];我使用了XCUIElement navBarTitle,然后使用了valueForKey方法。valueForKey提取密钥标识符的字符串值。
您可以在这里阅读此方法:NSKeyValueCoding
valueForKey是解锁此question....pun的答案的关键:)
https://stackoverflow.com/questions/33308915
复制相似问题