首页 > 解决方案 > 在 Swift 中使用 XCUITest 自动化在苹果地图上绘制形状

问题描述

Suppose if I have Four coordinates
 let app = XCUIApplication()
 let mapView = app.otherElements.matching(identifier: "map_view").element                                
 let co1 = mapView.coordinate(withNormalizedOffset: CGVector(dx: 0.1, dy: 0.15))
 let co2 = mapView.coordinate(withNormalizedOffset: CGVector(dx: 0.1, dy: 0.6))
 let co3 = mapView.coordinate(withNormalizedOffset: CGVector(dx: 1, dy: 0.6))
 let co4 = mapView.coordinate(withNormalizedOffset: CGVector(dx: 1, dy: 0.1))

 co1.press(forDuration: 2.0, thenDragTo: co2)
 co2.press(forDuration: 0, thenDragTo: co3)
 co3.press(forDuration: 0, thenDragTo: co4)
 co4.press(forDuration: 0, thenDragTo: co1)

我想用上面的画一条封闭的路径。绘制第二条线时,第一条线消失。我想在苹果地图上按一次,然后拖动以连接所有四个坐标,形成一个封闭的路径。

要不然

在地图上画一个一定半径的圆。

标签: swift4ui-testingxcuitest

解决方案


黑盒测试时不能绘制封闭的形状。

您只能通过捏合、缩放来绘制线条(滑动、拖动)、圆形路径(旋转)和一些绘图。

https://developer.apple.com/documentation/xctest/xcuielement

如果您想绘制复杂的形状 - 您可能应该切换到白盒测试。


推荐阅读