在Xcode 8/Swift 3中,使用坐标(withNormalizedOffset:CGVector)函数与XCUIElement交互似乎只能在纵向模式下工作。无法在横向模式下点击(x,y)坐标
为了测试此功能,我创建了一个屏幕项目,并在视图中居中放置了一个按钮。然后我运行以下UI测试:
func testExample() {
XCUIDevice.shared().orientation = .portrait
let window = XCUIApplication().windows.element(boundBy: 0)
let centerPoint = window.coordinate(withNormalizedOffset: CGVector(dx: 0.5, dy: 0.5))
centerPoint.tap()
}
这成功点击按钮。但是,如果我在landscapeLeft或landscapeRight中运行相同的测试,则不会轻敲该按钮。打印坐标的屏幕显示,它位于按钮框架的纵向和横向模式中。
相同的逻辑是成功的在Xcode 7 /斯威夫特2所有方向:
func testExample() {
XCUIDevice.sharedDevice().orientation = .LandscapeLeft
let window = XCUIApplication().windows.elementBoundByIndex(0)
let centerPoint = window.coordinateWithNormalizedOffset(CGVectorMake(0.5, 0.5))
centerPoint.tap()
}
我失去了一些东西,或者这是一个合法的框架的错误?它与Swift 2中的CGVectorMake到Swift 3中的CGVector(dx:dy :)有什么关系?
在这一点上,我相信这是一个框架的bug。向苹果提交了一份报告。 – tedrothrock