2017-08-24 134 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可以用我伯爵茶UI在迅速

+0

您是否能够在层次结构中看到它?使用'[GREYElementHierarchy hierarchyStringForAllUIWindows];' –

+0

否视图层次结构中,我能够看到当前视图没有导航一个 –

+0

我不能完全理解你的问题。你是说最后一行你点击menuButton失败,因为它找不到按钮?你能附上失败日志吗? – khandpur

回答

1

我在实现找到解决方案我自己。需要灰色条件。下面是代码

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())