我使用XCTest框架運行UI測試。XCode UI測試在成功之前嘗試多次查找元素
一切工作正常,除了在我的一些測試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