2016-12-02 10 views
2

Есть ли способ, какВыделите ячейки с помощью пользовательского интерфейса тестирования

- (void)scrollByDeltaX:(CGFloat)deltaX deltaY:(CGFloat)deltaY; 

для прошивки?

Я думаю, что вышеуказанный метод предназначен только для OSX. Я хотел бы прокрутить мое табличное представление в соответствии с предоставленными deltavalues.

Заранее спасибо.

ответ

2

На iOS вы можете использовать XCUIElement.press(forDuration:thenDragTo:), если хотите двигаться с точки зрения элементов.

Для перемещения по относительным координатам вы можете получить XCUICoordinate элемента, а затем использовать XCUICoordinate.press(forDuration:thenDragTo:).

let table = XCUIApplication().tables.element(boundBy:0) 

// Get the coordinate for the bottom of the table view 
let tableBottom = table.coordinate(withNormalizedOffset:CGVector(dx: 0.5, dy: 1.0)) 

// Scroll from tableBottom to new coordinate 
let scrollVector = CGVector(dx: 0.0, dy: -30.0) // Use whatever vector you like 
tableBottom.press(forDuration: 0.5, thenDragTo: tableBottom.withOffset(scrollVector)) 

Или в Objective-C:

XCUIApplication *app = [[XCUIApplication alloc] init]; 
XCUIElement *table = [app.tables elementBoundByIndex: 0]; 

// Get the coordinate for the bottom of the table view 
XCUICoordinate *tableBottom = [table coordinateWithNormalizedOffset:CGVectorMake(0.5, 1.0)]; 

// Scroll from tableBottom to new coordinate 
CGVector scrollVector = CGVectorMake(0.0, -30.0); // Use whatever vector you like 
[tableBottom pressForDuration:0.5 thenDragToCoordinate:[tableBottom coordinateWithOffset:scrollVector]]; 
+0

Этот фрагмент кода работает для меня, но с некоторыми изменениями (я использовал его на WebView вместо таблицы) , Во-первых, метод '.coordinate' имеет параметр с' z' в слове 'Normalized' (для части Swift); во-вторых, мне пришлось позиционировать это нормализованное смещение в центр WebView (пропуская 0,5 для «dx» и «dy»), потому что у WebView были некоторые кнопки над ним внизу; в-третьих, мне пришлось понизить начальную продолжительность нажатия от 0,5 до 0,2, потому что удерживание в течение половины секунды вызывало WebView для выбора текста. – lagoman

+0

Обновлен мой отрывок, чтобы нормализовать z, извините! – Oletha

2

ответ Oletha было именно то, что я искал, но есть несколько незначительных ошибок в примере Objective-C. Поскольку правка была отклонена, я включу его здесь в качестве ответа на кого-либо еще, что приходит вместе:

XCUIApplication *app = [[XCUIApplication alloc] init]; 
XCUIElement *table = [app.tables elementBoundByIndex: 0]; 

// Get the coordinate for the bottom of the table view 
XCUICoordinate *tableBottom = [table 
coordinateWithNormalizedOffset:CGVectorMake(0.5, 1.0)]; 

// Scroll from tableBottom to new coordinate 
CGVector scrollVector = CGVectorMake(0.0, -30.0); // Use whatever vector you like 
[tableBottom pressForDuration:0.5 thenDragToCoordinate:[tableBottom coordinateWithOffset:scrollVector]]; 

 Смежные вопросы

  • Нет связанных вопросов^_^