我想使用UITest使用自己的MKAnnotationView
点按XCTestCase
,因此我将mapView作为XCUIElement
。我不知道如何从mapView中获取注释,我不想在屏幕上的位置上放置固定位置,因为它已经在各种设备上进行了测试。所以我被困在let mapView:XCUIElement = app.maps.elementBoundByIndex(0)
有任何想法吗?
最佳答案
要与地图注释交互,请使用otherElements
属性引用的title
。
例如,在生产代码中,在MKAnnotation
中设置标题。
class Annotation: NSObject, MKAnnotation {
let coordinate: CLLocationCoordinate2D
let title: String?
init(title: String?, coordinate: CLLocationCoordinate2D) {
self.title = title
self.coordinate = coordinate
}
}
let coordinate = CLLocationCoordinate2DMake(40.703490, -73.987770)
let annotation = Annotation(title: "BeerMenus HQ", coordinate: coordinate)
let mapView = MKMapView()
mapView.addAnnotation(annotation)
然后在测试中,您可以通过其
title
属性引用注释。let app = XCUIApplication()
let annotation = app.maps.element.otherElements["BeerMenus HQ"]
annotation.tap()
关于ios - 用XCTestCase点按MKAnnotationView,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37652399/