 @objcMembers
 open class Snapshot: NSObject {
     static var app: XCUIApplication?
+    static var waitForAnimations = true
     static var cacheDirectory: URL?
     static var screenshotsDirectory: URL? {
         return cacheDirectory?.appendingPathComponent("screenshots", isDirectory: true)
     }
 
-    open class func setupSnapshot(_ app: XCUIApplication) {
+    open class func setupSnapshot(_ app: XCUIApplication, waitForAnimations: Bool = true) {
         
         Snapshot.app = app
+        Snapshot.waitForAnimations = waitForAnimations
 
         do {
             let cacheDir = try pathPrefix()

                return
            }
            
            guard let window = app.windows.allElementsBoundByIndex.first(where: { $0.frame.isEmpty == false }) else {
                print("Couldn't find an element window in XCUIApplication with a non-empty frame.")
                return
            }

            let screenshot = window.screenshot()
            guard let simulator = ProcessInfo().environment["SIMULATOR_DEVICE_NAME"], let screenshotsDir = screenshotsDirectory else { return }
            let path = screenshotsDir.appendingPathComponent("\(simulator)-\(name).png")

        } catch {
            print("Couldn't detect/set locale...")
        }
        
        if locale.isEmpty && !deviceLanguage.isEmpty {
            locale = Locale(identifier: deviceLanguage).identifier
        }
        
        if !locale.isEmpty {
            app.launchArguments += ["-AppleLocale", "\"\(locale)\""]
        }
    }

    class func setLaunchArguments(_ app: XCUIApplication) {
