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