2015-10-06 83 views
1

蘋果在iOS 9上介紹Xcode 7的UI測試時談到的一件事是,一切都來自可訪問性。我想知道是否有人知道如何找出元素上是否有「可用操作」元素。XCode 7 UI測試 - 可用行動

我有一個UITableView其中一些單元格可以通過從右向左滑動來刪除,顯示刪除按鈕。當VoiceOver打開並點擊單元格時,它會將單元格描述爲按鈕,然後顯示「可用操作」。

我想從我的測試中發現,所以我可以用來驗證一些事情是啓用的,有些事情不是。

任何想法?

回答

0

我不知道從XCUITesting中找出是否有可用的輔助功能,如果有,它們是什麼。

但是,如果你是專門嘗試檢測,如果「刪除」按鈕向右滑動到左的單元格後可用,您可以使用類似

yourCellXCUIElement.buttons.count //How many buttons are visible inside your cell. In a standard UITableViewCell, this will be 0 unless you have exposed the "Delete" button. 

您也可以在標籤上按鈕是這樣的:

yourCellXCUIElement.buttons.elementAtIndex(0).label //In a standard UITableViewCell that has been swiped left to expose the Delete button, this will return "Delete" 

這是你想要得到的,還是有不同的事情,你正試圖驗證啓用或不是?

+0

更改。當我做了'swipeLeft'對細胞如果動作是不是有它結束了錄音,並由此轉變我有不同的看法。我希望我可以檢查,看看刪除的選項是否存在,而沒有實際轉換。但是我不得不嘗試一下你的方法,但我不認爲有一種方法可以繞過_not_滑動來暴露按鈕。 – RyanJM

+0

在我的UI測試我發現我的第一個單元格的tableView像這樣的刪除按鈕: 'app.tables.cells.elementBoundByIndex(0).swipeLeft()' 後來我設法挖掘刪除按鈕這樣的: ' app.tables.cells.elementBoundByIndex(0).buttons [ 「刪除」]。挖掘()' –

1

的語法已在斯威夫特3.

let app = XCUIApplication() 
let cells = app.tables.cells 
cells.element(boundBy: 0).swipeLeft() 
cells.element(boundBy: 0).buttons["Delete"].tap()