2016-03-24 10 views

cevap

2

genellikle yukarı çıkmasını diyaloglar önlemek amacıyla bildirimleri ve diğer veriler isteklerini alay edilmelidir. Ayrıca, bildirimi el ile kabul edebilir ve testlerinizi yeniden çalıştırabilirsiniz. Bunun için özel UIAutomation çerçevesini kullanmayı denedik ve bununla başarabileceğimizi gördük. Örneğin, sol uyarı düğmesine basmak için.

@interface SystemAlert : NSObject 
- (void)tapLeftButton; 
@end 

@interface SystemAlert (ForMethodCompletionOnly) 
+ (id)localTarget; 
- (id)frontMostApp; 
- (id)alert; 
- (id)buttons; 
@end 

@implementation SystemAlert 

+ (void)load { 
    dlopen([@"/Developer/Library/PrivateFrameworks/UIAutomation.framework/UIAutomation" fileSystemRepresentation], RTLD_LOCAL); 
} 

- (void)tapLeftButton { 
    id localTarget = [NSClassFromString(@"UIATarget") localTarget]; 
    id app = [localTarget frontMostApp]; 
    id alert = [app alert]; 
    id button = [[alert buttons] objectAtIndex:0]; 
    [button tap]; 
} 

@end 
+0

Ancak, UIAutomation, bozuk olmayan bir aygıtta çalışamaz gibi görünüyor. Ayar-> Geliştirici-> UI Otomasyonunu etkinleştirmeme karşın, uygulama çökmesi ve "Bu cihazda UIAutomation etkin değil. UIAutomation, Ayarlar'da etkinleştirilmelidir." – Paul

+0

Bu garip. Bir iPhone 6s üzerinde denedim ve benim için iyi çalıştı. Cihazı yeniden başlatır, UIAutomation'ın ayarlarda etkinleştirildiğinden emin olun ve testleri tekrar çalıştırmayı deneyin. – khandpur

İlgili konular