通過我的KIF測試打開輔助功能檢查器(顯然,它是KIF工作所必需的)。問題是,它的窗口閉塞控制着一些後續的UI測試需要點擊並且這些測試失敗。如何在iOS 9模擬器中關閉輔助功能檢查器?
我怎麼能拒絕的輔助檢查關時,我的KIF測試完成它,所以我的UI測試可以運行?
(從模擬器的設置應用關掉它「手動」是不是一個解決方案 - 我尋找的東西,我可以從代碼中調用,目標還是...?設置)
通過我的KIF測試打開輔助功能檢查器(顯然,它是KIF工作所必需的)。問題是,它的窗口閉塞控制着一些後續的UI測試需要點擊並且這些測試失敗。如何在iOS 9模擬器中關閉輔助功能檢查器?
我怎麼能拒絕的輔助檢查關時,我的KIF測試完成它,所以我的UI測試可以運行?
(從模擬器的設置應用關掉它「手動」是不是一個解決方案 - 我尋找的東西,我可以從代碼中調用,目標還是...?設置)
它默認情況下未啓用。您必須手動打開它。
我在Stew Gleadow's blog上看到了以下內容。
你只需要更改線路:
CFPreferencesSetValue(CFSTR("ApplicationAccessibilityEnabled"), kCFBooleanFalse, accessibilityDomain, kCFPreferencesAnyUser, kCFPreferencesAnyHost);
變化kCFBooleanTrue
到kCFBooleanFalse
。
+ (void)_enableAccessibilityInSimulator {
NSAutoreleasePool *autoreleasePool = [[NSAutoreleasePool alloc] init];
NSString *appSupportLocation = @"/System/Library/PrivateFrameworks/AppSupport.framework/AppSupport";
NSDictionary *environment = [[NSProcessInfo processInfo] environment];
NSString *simulatorRoot = [environment objectForKey:@"IPHONE_SIMULATOR_ROOT"];
if (simulatorRoot) {
appSupportLocation = [simulatorRoot stringByAppendingString:appSupportLocation];
}
void *appSupportLibrary = dlopen([appSupportLocation fileSystemRepresentation], RTLD_LAZY);
CFStringRef (*copySharedResourcesPreferencesDomainForDomain)(CFStringRef domain) = dlsym(appSupportLibrary, "CPCopySharedResourcesPreferencesDomainForDomain");
if (copySharedResourcesPreferencesDomainForDomain) {
CFStringRef accessibilityDomain = copySharedResourcesPreferencesDomainForDomain(CFSTR("com.apple.Accessibility"));
if (accessibilityDomain) {
CFPreferencesSetValue(CFSTR("ApplicationAccessibilityEnabled"), kCFBooleanFalse, accessibilityDomain, kCFPreferencesAnyUser, kCFPreferencesAnyHost);
CFRelease(accessibilityDomain);
}
}
[autoreleasePool drain];
}
你說得對。這是我的KIF測試將其打開,而不是將其關閉 - 請參閱上面的編輯。 –