2016-09-02 7 views
6

Я создаю автоматизацию тестового примера UITest, где я бы хотел протестировать сценарий, когда пользователи взаимодействуют с 3D-интерфейсом, а затем отображают их вид Peek и Pop.Сделайте XCUIElement выполнимым 3D-касанием для Automate UITest?

Невозможно найти возможные способы моделирования 3D-касания на элементе и продолжить.

У любого есть идеи об этом, или 3D Touch по-прежнему недоступен для тестирования?

Благодаря

ответ

1

Я был в состоянии выполнить усилие пресса/3D Нажмите на значок приложения на iPhone 7 под управлением IOS 10.3. Это было невозможно по 10.2.

Objective-C

Сначала вы должны объявить следующий или импортировать this header

typedef void (^CDUnknownBlockType)(void); 

@interface XCEventGenerator : NSObject 

+ (id)sharedGenerator; 

// iOS 10.3 specific 
- (double)forcePressAtPoint:(struct CGPoint)arg1 orientation:(long long)arg2 handler:(CDUnknownBlockType)arg3; 

@end 

, а затем выполнить силу нажмите

XCUIElement *element = ...; // Get your element 
XCUICoordinate *coord = [mapsIcon coordinateWithNormalizedOffset:CGVectorMake(0.5, 0.5)]; 

[[XCEventGenerator sharedGenerator] forcePressAtPoint:coord.screenPoint orientation:0 handler:^{}]; // handler cannot be nil 

Здесь я исполняю усилие пресса на значки «Карты».

Swift (не проверено)

Для Swift вы должны объявить/импортировать один и тот же интерфейс/заголовок, как описано выше, а затем выполнить усилие пресса, как это

let el = ...; // Get your element 
let coord = el.coordinate(withNormalizedOffset: CGVector(dx: 0.5, dy: 0.5)) 
let eventGenerator: XCEventGenerator = XCEventGenerator.sharedGenerator() as! XCEventGenerator 

eventGenerator.forcePress(at: coord.screenPoint, orientation: 0) { } 
+0

Можете ли вы предоставить образец проекта ? Я пробовал, как вы сказали выше, но все же не заставляет прикоснуться. Кроме того, я пытаюсь заставить касаться иконки на трамплине –