XCUITest如何彼此之间定位选项卡的位置

时间:2018-11-07 16:52:16

标签: xcuitest

我的应用程序选项卡中有4个选项卡。

  • tabA
  • tabB
  • tabC
  • tabD

我必须验证它们从左到右的位置相同 tabA tabB tabC tabD

例如失败看起来像这样 tabB tabC tabA tabD

有没有一种方法可以使用XCUITest进行测试。我在Xcode文档中查找了内容,但没有所需的内容。

1 个答案:

答案 0 :(得分:0)

结合使用element(boundBy: Int)和标签上的字符串-https://developer.apple.com/documentation/xctest/xcuielementquery/1500842-element

我假设您的标签包含一些文本(可以说标签上的文本是 tabA,tabB,tabC,tabD ),因此最好的解决方案是检查 标签上的文本 和标签的 索引 。 通过检查文本,您知道元素是正确的选项卡(tabA,tabB ...),并且通过检查元素索引,您知道它在正确的位置。

在此之后,它很简单-找到通往标签栏按钮的方式(通常为XCUIApplication.tabBars.buttons["tabA"])。比照这样检查他们的字符串和位置:

let app = XCUIApplication()
let tabA = XCUIApplication.tabBars.buttons["tabA"].element(boundBy: 0)//tabA is on the first position
let tabB = XCUIApplication.tabBars.buttons["tabB"].element(boundBy: 1)//tabB is on the second position etc...
let tabC = XCUIApplication.tabBars.buttons["tabC"].element(boundBy: 2)
let tabD = XCUIApplication.tabBars.buttons["tabD"].element(boundBy: 3)

XCTAssertTrue(tabA.exists) 
XCTAssertTrue(tabB.exists) 
XCTAssertTrue(tabC.exists) 
XCTAssertTrue(tabD.exists)  

编辑:建议不要使用字符串accessibilityIdentifier-https://developer.apple.com/documentation/uikit/uiaccessibilityidentification#//apple_ref/occ/intfp/UIAccessibilityIdentification/accessibilityIdentifier