Я запускаю пользовательские интерфейсы с помощью рамки XCTest.XCode UI Test много раз пытается найти элемент до достижения
Все работает отлично, за исключением того, что на некоторых моих тестах XCTest должен попробовать много много раз, чтобы успешно найти UIElement, который он ищет. Похоже, что это происходит с элементами меню, которые содержатся в меню, созданном с помощью кнопки в ячейке таблицы.
Вот код одного из моих тестов, который имеет такое поведение.
func testMoreMenuCopyDirectLinkAction()
{
//Arrange
CloudPasteboardController.clearClipboard()
XCTAssertTrue(CloudPasteboardController.getPasteboardItems().count == 0)
let app = XCUIApplication()
let firstCell = app.tables.cells.elementBoundByIndex(0)
let moreMenu = firstCell.menus.elementBoundByIndex(0)
let copyDirectLink = moreMenu.menuItems.elementMatchingType(.MenuItem, identifier: "Copy Direct Link")
//Act
openApp()
findAndClickCellButtonWithName("More Button")
waitForUIElementToAppear(copyDirectLink)
copyDirectLink.click()
//Assert
XCTAssertTrue(CloudPasteboardController.getPasteboardItems().count == 1)
}
Вот скриншот частичного вывода. Как видно, он несколько раз пытается найти элемент в виде цикла. В целом в этом тесте это удалось в 11-м цикле.
Я попытался повторно писать код без вызова «waitForUIElementToAppear (...)», и я попытался упростить вызов, просто говоря «copyDirectLink = app.menuItems [» Скопировать прямую ссылку "]", но это ничего не меняет.
Похоже на то, что он зациклился на мне. Может быть, он ждет его появления или чего-то еще. – Alex