2012-01-10 57 views
2

我在logElementTree輸出以下項目:iOS的自動化:如何挖掘按鈕沒有ID

UIAButton: rect:{{20, 427}, {41, 41}} 

UIAButton: rect:{{140, 427}, {41, 41}} 

這些按鈕都沒有標識,沒有名字,並在廈門國際銀行中沒有畫出。在我的自動化測試腳本中,我只使用索引(類似於target.frontMostApp().mainWindow().buttons()[7].tap()

但是,因爲索引正在改變,所以這行不會總是有效。我只想問,除了使用索引之外,是否還有其他方法可以使用此按鈕?請注意,該按鈕沒有名稱,所以我不能使用buttons()["name'"].tap()

+0

爲什麼你不能只給它一個名稱或編程索引? – 2012-01-10 21:52:37

+0

@JackLawrence你能舉例說明如何做到這一點嗎?謝謝。 – user1140194 2012-01-11 01:49:09

回答

0

從技術上講,這將是最好的方式去做你想做的事情,所以我會留在這裏爲其他開發人員看到這個問題。在你的情況下,由於你的技術經驗有限,我建議你要求你的開發人員給按鈕分配ID或名稱。爲按鈕和其他UI元素提供良好的名稱意味着您的應用程序也適用於視力受損的用戶,因爲配音會將他們提供給您的按鈕的名稱讀取給他們。以下代碼塊將以編程方式將標籤和可訪問性提示分配給符合UIAccessibility的動態創建的對象。

從蘋果公司的文件(在這種情況下,他們正在做的一個觀點,但你可以做這樣一個按鈕,任何物體上):

- (id)init 
{ 
    _view = [[[MyCustomView alloc] initWithFrame:CGRectZero] autorelease]; 
    [_view setIsAccessibilityElement:YES]; 

    [_view setAccessibilityTraits:UIAccessibilityTraitButton]; 
    [_view setAccessibilityLabel:NSLocalizedString(@"view.label", nil)]; 
    [_view setAccessibilityHint:NSLocalizedString(@"view.hint", nil)]; 
} 

http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/iPhoneAccessibility/Making_Application_Accessible/Making_Application_Accessible.html#//apple_ref/doc/uid/TP40008785-CH102-SW5

的Javascript「黑客」(不是很乾淨,但它的工作原理...):

var window = UIATarget.localTarget(); 
window.tap({x:yourXCoordinateHere , y:yourYCoordinateHere}); 
+0

謝謝你的回答,但我並不擅長編程,我是一個喜歡嘗試自動化的測試人員,所以你的回答對我來說並不清楚。我只想知道是否有一種方法可以點擊按鈕(無ID /名稱)而不是使用索引。再次感謝。 – user1140194 2012-01-11 08:35:38

+1

從你的答案我假設你的意思是你寧願留在一些JavaScript的一邊,對嗎?我會相應地更新我的答案。 – 2012-01-12 03:10:41