I've been using UIAutomation to automate screenshot generation and make it easier to keep support documents up-to-date. Do you know if this works for that? Straight UIAutomation times out a lot doing that and often requires multiple runs to get everything.
Re:What's in my iOS Toolbox? Part 2
by MaxGabriel on Tuesday February 04, 2014 @01:11AM
(#7175817)
Yes. You can send Javascript to be evaluated by UIAutomation so it has all the capabilities of that UIAutomation does. There's a PR that adds this natively https://github.com/inkling/Subliminal/pull/118, but you can also just implement it yourself quite easily:
- (void)captureScreenshotWithFilename:(NSString *)filename
{
[[SLTerminal sharedTerminal] evalWithFormat:@"UIATarget.localTarget().captureScreenWithName(\"%@\")",
[filename slStringByEscapingForJavaScriptLiteral]];
}
Subliminal allows you to write tests in Objective-C that interface directly with your app. This makes your tests be more powerful (can test things not visible to the user, and can simulate activity that UIAutomation can't (like a credit card swipe, which is why KIF was invented)).
More amazing is that you get the benefits of static typing. Instead of stringly-typed accessibility identifiers, you can use string constants (NSString * const kIdentifier = @"blah").
It runs by bridging UIAutomation and Objective-C, so its more reliable than KIF, which has to use private API to simulate touches. This doesn't work correctly for gesture recognizers and is very fragile.