2016-09-28 9 views
0

Appiumを使用してIOSアプリケーションのテストケースを自動化しています。私は識別する必要があるシナリオを持っています。私は画面を閉じることができるようにどの画面にあるのですか?IOSアプリケーションで画面名やコントローラを確認する方法

より広い視野では、私たちはアプリケーション内でランダムな方法で開くinapp通知を持っています。

私は現在の画面を識別できる場合、私はこれらの条件を処理することができます。 は、私は、IOSのために同じ方法のいくつかの種類が

+0

このリンクはあなたを助けるかもしれない参照してください - http://stackoverflow.com/questions/22882078/how-to-get-visible-viewcontroller-from-app-delegate-when-using-storyboard –

答えて

0

あなたは法の下に使用して最上位のビューコントローラを取得するアプリ必要driver.currentActivity方法

を使ってAndroidの中で同じことを扱う

+ (UIViewController*) topMostController 
{ 
    UIViewController *topController = [UIApplication sharedApplication].keyWindow.rootViewController; 

    while (topController.presentedViewController) { 
    topController = topController.presentedViewController; 
} 

return topController; 

}

ナビゲーションまたはUIabbarコントローラがある場合は、以下の方法を使用して表示コントローラを表示します

- (void)applicationWillResignActive:(UIApplication *)application 
{ 
    UIViewController *vc = [self visibleViewController:[UIApplication sharedApplication].keyWindow.rootViewController]; 
} 

- (UIViewController *)visibleViewController:(UIViewController *)rootViewController 
{ 
if (rootViewController.presentedViewController == nil) 
{ 
    return rootViewController; 
} 
if ([rootViewController.presentedViewController isKindOfClass:[UINavigationController class]]) 
{ 
    UINavigationController *navigationController = (UINavigationController *)rootViewController.presentedViewController; 
    UIViewController *lastViewController = [[navigationController viewControllers] lastObject]; 

    return [self visibleViewController:lastViewController]; 
} 
if ([rootViewController.presentedViewController isKindOfClass:[UITabBarController class]]) 
{ 
    UITabBarController *tabBarController = (UITabBarController *)rootViewController.presentedViewController; 
    UIViewController *selectedViewController = tabBarController.selectedViewController; 

    return [self visibleViewController:selectedViewController]; 
} 

UIViewController *presentedViewController = (UIViewController *)rootViewController.presentedViewController; 

return [self visibleViewController:presentedViewController]; 

}

+0

I私の自動化スクリプトのためにJavaを使用しています。私はどのようにJava環境でコードの一部を実行することができます私に教えてください、 – argneshu

関連する問題