2017-08-24 13 views
0

以下はearlGreyテストのために私のコードですナビゲーション問題は

EarlGrey.select(elementWithMatcher: grey_accessibilityID("userNameTextField")) 
.atIndex(0).perform(grey_typeText("[email protected]")) 
EarlGrey.select(elementWithMatcher: grey_accessibilityID("passwordTextField")) 
    .atIndex(1).perform(grey_typeText("[email protected]")) 
EarlGrey.select(elementWithMatcher: grey_accessibilityID("signIn")).atIndex(2) 
    .perform(grey_tap()) 

/////////////////This button on the other view controller i redirect after login////////////////////////////////  
EarlGrey.select(elementWithMatcher: grey_accessibilityID("menuButton")) 
.perform(grey_tap()) 

私のナビゲートview.Howがで私が持っていた私は、迅速

+0

これは階層で見ることができますか?ビュー階層には、[GREYElementHierarchy hierarchyStringForAllUIWindows]; –

+0

はありません。私は現在のビューをナビゲートしていません。 –

+0

私はあなたの質問をよく理解できません。あなたがボタンを見つけることができないので、menuButtonをクリックした最後の行が失敗すると言っていますか?障害ログを添付できますか? – khandpur

答えて

1

にアールグレイのUIを使用して達成することができます表示されませんビュー階層あなた自身が見つけた解決策です。灰色の状態でなければなりません。コードは下にあります

GREYCondition(name: "Wait for menu button to appear", block: { _ in 
      let errorOrNil = UnsafeMutablePointer<NSError?>.allocate(capacity: 1) 
      errorOrNil.initialize(to: nil) 

      EarlGrey.select(elementWithMatcher: grey_accessibilityValue("menuButton")).assert(grey_notNil(), error: errorOrNil) 

      let success = errorOrNil.pointee == nil 
      errorOrNil.deinitialize() 
      errorOrNil.deallocate(capacity: 1) 

      return success 
     }).wait(withTimeout: 10.0) 
     EarlGrey.select(elementWithMatcher: grey_accessibilityValue("menuButton")).perform(grey_tap()) 
関連する問題