weg*_*mic 18 testing ios xcode-ui-testing xcode7-beta6
问题其实很简单:
有没有办法在此对象上使用可访问性标签时断言特定标签(例如UILabel)的显示值?
据我所知,在示例中做出的所有断言(例如XCTAssertEquals),无论是来自WWDC Talk还是Blogposts,都只检查是否存在查询的元素,XCTAssertEquals(app.staticTexts["myValue"].exists, true)或者表中单元格的数量是否正确XCTAssertEquals(app.tables.cells.count, 5).因此,当避免使用可访问性标签时,可以检查对象是否显示某个值,而不是哪个对象/元素.当使用可访问性标签时,它会让我有机会查询显示的值,因为app.staticTexts["myValue"]现在无法提供结果但app.staticTexts["myAccessibilityLabel"]会命中.
假设我想测试我的"将新单元格添加到表格"功能,我可以测试列表中是否添加了新单元格,但我不知道新单元格是添加到列表的顶部还是底部或介于两者之间.
对我来说,检查特定元素是否具有特定值的简单方法应该是UI测试的明智之举.
由于缺少文档,我可能会忽略显而易见的事实.如果是这样,请告诉我.
小智 23
每当设置其.text值时,请务必设置UILabel的.accessibilityValue属性.然后在UITest中,您可以像这样测试可访问性值:
let labelElement = app.staticTexts["myLabel"]
...
XCTAssertEqual(labelElement.value as! String, "the expected text")
Run Code Online (Sandbox Code Playgroud)
Joe*_*tti 11
我想你会问几个不同的东西,所以我会尝试单独回答每个问题.
有没有办法在此对象上使用可访问性标签时断言特定标签(例如UILabel)的显示值?
简而言之,没有.UI测试通过挂钩到辅助功能API来工作,因此您只能基于此查询对象.但是,您可以检查-value某些元素的属性,例如控件.这用于测试开关是打开还是关闭.请注意,这些也可以使用辅助功能API,只是一个不同的方法(-accessibilityValueover -accessibilityIdentifier和-accessibilityLabel).
...但我不知道新单元格是添加在列表的顶部还是底部,还是介于两者之间.
要查询XCUIElement其框架,您可以使用XCUIElementAttributes公开的新协议-frame.例如:
let app = XCUIApplication()
app.launch()
app.buttons["Add New Cell to Table"].tap()
let lastCell = app.cells["Last Cell"]
let newCell = app.cells["New Cell"]
XCTAssert(newCell.exists)
XCTAssert(newCell.frame.minY > lastCell.frame.maxY)
Run Code Online (Sandbox Code Playgroud)
对我来说,检查特定元素是否具有特定值的简单方法应该是UI测试的明智之举.
如果从可访问性的角度考虑所有事情,这就成了一个问题.UI测试只能通过辅助功能API与您的元素进行交互,因此您必须实现它们.您还可以获得额外的好处,即在启用这些设置的情况下让用户更容易访问您的应用.
尝试将单元格-accessibilityLabel或-accessibilityIdentifier单元格设置为显示的文本.UI测试可能很挑剔它使用哪一个.
由于缺少文档,我可能会忽略显而易见的事实.如果是这样,请告诉我.
XCTest和UI Testing没有任何官方文档.所以我已经离开了从框架中公开的头文件中提取自己的东西.请注意,即使它们是从源头提取的,它们也是非官方的.
对我来说有用的是设置UILabel的可访问性标识符MyLabel.
func myLabelText() -> String {
let myLabelUIElement: XCUIElement = self.application.staticTexts["MyLabel"]
return myLabelUIElement.label
}
Run Code Online (Sandbox Code Playgroud)
使用Xcode 8和iOS 10进行测试
| 归档时间: |
|
| 查看次数: |
11330 次 |
| 最近记录: |