Как изменить порядок ячеек в UITests?

Наряду с UITests и UITableView мне нужно изменить порядок ячеек. Является ли это возможным? Я пробовал myTable.swipeDown(), но он вызывается в том месте ячейки, которое не отвечает на переупорядочивание. Как я могу это сделать? Это вообще возможно?

введите здесь описание изображения


person Bartłomiej Semańczyk    schedule 10.09.2015    source источник


Ответы (3)


Если вы правильно установили свойства специальных возможностей пользовательской ячейки, то элемент управления изменением порядка должен быть доступен. Предположим, ячейка установила свои метки/идентификаторы доступности на «LondonStreet» и «BakerStreet» соответственно.

Вы можете изменить порядок ячеек, нажав и перетащив от одного элемента управления переупорядочением к другому. Идентификатор доступности для этих элементов управления устанавливается автоматически из информации о ячейке.

let app = XCUIApplication()
app.launch()

let topButton = app.buttons["Reorder LondonStreet"]
let bottomButton = app.buttons["Reorder BakerStreet"]
bottomButton.pressForDuration(0.5, thenDragToElement: topButton)

Префикс "Reorder " был установлен операционной системой. Попробуйте использовать инспектор специальных возможностей, чтобы узнать, каковы значения вашего элемента управления переупорядочением.

Использование инспектора специальных возможностей для доступа к элементу управления повторным заказом

Я добавил пример в свой шпаргалку по тестированию пользовательского интерфейса с некоторым рабочим примером кода если вы хотите попробовать это на своей машине.

person Joe Masilotti    schedule 10.09.2015
comment
Как именно я могу проверить свой префикс для сотового? Как включить инспектор доступности? - person Bartłomiej Semańczyk; 10.09.2015
comment
Инспектор специальных возможностей — это приложение, установленное на вашем компьютере и расположенное в папке /Applications/Xcode.app/Contents/Applications. Этот инструмент может показать вам, какие префиксы для ваших ячеек. - person Joe Masilotti; 10.09.2015

Чтобы включить Accessibility Inspector, сначала вам нужно перейти к:

Системные настройки > Безопасность и конфиденциальность:

введите здесь описание изображения

А затем Xcode > Открыть инструмент разработчика > Инспектор специальных возможностей.

введите здесь описание изображения

person Bartłomiej Semańczyk    schedule 11.09.2015

Более общее решение: (если вы не знаете названий)

guard let firstCell = app.cells.allElementsBoundByIndex.first, let topButton = firstCell.buttons.allElementsBoundByIndex.last else { XCTFail("no reoder btn for first cell"); return }
guard let bottomCell = app.cells.allElementsBoundByIndex.last, let bottomButton = bottomCell.buttons.allElementsBoundByIndex.last else { XCTFail("no reoder btn for last cell"); return }
topButton.press(forDuration: 0.5, thenDragTo: bottomButton)
person Sentry.co    schedule 20.08.2019