2016-06-10 167 views
6

以下是我正在使用的表格的圖片。UITest標籤顏色(不是UI標籤)

enter image description here

我只是想獲得的「要求」(灰色)或「草稿」(橙)色。我能夠通過

var timeSheetStatus = 
    app.tables.element.cells.elementBoundByIndex(0).staticTexts.elementBoundByIndex(1).label 

獲得的「要求」或「草案」的實際字符串但是這僅僅是一個字符串,而不是一個UILabel(如果它是一個UILabel我能做到label.textColor我相信)。我如何獲得這個字符串的顏色,以便我可以斷言它確實是灰色或橙色的?

+0

當然這是一個標籤。一個字符串不能神奇地出現在界面中;它必須由一些接口對象來繪製。 – matt

+0

@matt對不起,我開始幾天前從頭開始瞭解這個。我的意思是我的問題中的代碼返回一個字符串,而不是一個UILabel,所以我想我只是混淆瞭如何讓這個元素的UILabel與它一起工作。 – user3613290

+0

您將需要爲UILabel着色編寫一個單元測試,您將能夠訪問UILabel的顏色屬性。 – Oletha

回答

5

恐怕你不會是能夠通過用戶界面測試來做到這一點。 UI測試只能在「輔助功能」公開的範圍內「看到」界面。因此,你可以「看到」文本,但你不能「看到」這個東西是UILabel; UI測試對此一無所知。因此你不能將它的本質作爲UILabel來探索。

0

不能直接獲取顏色,但如果你需要測試你的UI,以確保您的標籤正確突出顯示,你可以設置你的無障礙標籤包括諸如顏色或它強調了一個事實信息。

這也將提高應用程序的可用性,因爲視覺障礙的用戶將看不到顏色反正。然後,您可以編寫測試以確保至少可訪問性標籤是正確的。當然,開發人員仍然有可能使標籤顏色爲綠色,並且可訪問性標籤爲「黃色」,但這是使用查詢UI元素的可訪問性的一般風險。

例如,在您的應用程序代碼:

myLabel.text = "Draft" myLabel.color = .yellow myLabel.accessibilityLabel = "Draft (Yellow)"