断言失败:UI测试失败 - 元素和任何后代都没有键盘焦点

时间:2016-01-14 15:40:00

标签: ios swift ui-testing xcode-ui-testing

我是新的im xcode-ui,有一个问题。

Assertion Failure: UI Testing Failure - Neither element nor any descendant has keyboard focus. Element:
Attributes: Other 0x7f8c1cb703d0: traits: 8589934592, {{0.0, 167.0}, {375.0, 44.0}}, label: 'XXXXXXX'
Element subtree:
 →Other 0x7f8c1cb703d0: traits: 8589934592, {{0.0, 167.0}, {375.0, 44.0}}, label: 'XXXXXXX'
Path to element:
 →Application 0x7f8c1cb71870: {{0.0, 0.0}, {375.0, 667.0}}, label: 'A'
  ↳Window 0x7f8c1cb78850: Main Window, {{0.0, 0.0}, {375.0, 667.0}}
   ↳Other 0x7f8c1cb77470: {{0.0, 0.0}, {375.0, 667.0}}
    ↳Other 0x7f8c1cb68100: traits: 8589934592, {{0.0, 0.0}, {375.0, 667.0}}
     ↳Other 0x7f8c1cb62260: traits: 8589934592, {{0.0, 0.0}, {375.0, }}
      ↳Other 0x7f8c1cd44e20: traits: 8589934592, {{0.0, 0.0}, {375.0,}}
       ↳Other 0x7f8c1cd45580: traits: 8589934592, {{0.0, 0.0}, {375.0,}}
        ↳Other 0x7f8c1cb63040: traits: 8589934592, {{0.0, 0.0}, {375.0,}}
         ↳ScrollView 0x7f8c1cb60e80: traits: 8589934592, {{0.0, 0.0}, 
          ↳Other 0x7f8c1cb73fc0: traits: 8589934592, {{0.0, 64.0}, {375.0}}
           ↳Other 0x7f8c1cb73930: traits: 8589934592, {{0.0, 124.0}, 
            ↳Other 0x7f8c1cb703d0: traits: 8589934592,  label: 'XXXXXXXX'
Query chain:
 →Find: Target Application 0x7f8c19c46190
  Output: {
    Application 0x7f8c1cb71870: {{0.0, 0.0}, {375.0, 667.0}}, label: 'App'
  }
  ↪︎Find: Descendants matching type ScrollView
    Output: {
      ScrollView 0x7f8c1cb60e80: traits: 8589934592, {{0.0, 0.0}, {375.0,}}
    }
    ↪︎Find: Descendants matching type Other
      Output: {
        Other 0x7f8c1cb7bb90: traits: 8589934592, {{0.0, 124.0}, {375.0, 
        Other 0x7f8c1cc55950: traits: 8589934592, {{0.0, 168.0}, {375.0, 
        Other 0x7f8c1cc55270: traits: 8589934592, {{0.0, 124.0}, {375.0, 
        Other 0x7f8c1cb74650: traits: 8589934592, {{0.0, 124.0}, {375.0, 44.0}}, label: 'XXXXXXXX'
        Other 0x7f8c1cb703d0: traits: 8589934592, {{0.0, 167.0}, {375.0, 44.0}}, label: 'XXXXXXXX'

我录制了一个测试游戏,但确实有效。代码如下:

let elementsQuery = app.scrollViews.otherElements
let a = elementsQuery.otherElements["XXXXXXXXX"]
a.tap()
app.typeText("rerererdre")
let b = elementsQuery.otherElements["YYYYYYYYY"]
b.tap()

将文本输入到字段后,测试崩溃。 a和b是滚动视图中的两个文本字段。我用app.textFields [" XXXXXXXXX"]尝试了它,但它没有用。

有什么想法吗? 干杯

"连接硬件键盘"已关闭。

1 个答案:

答案 0 :(得分:1)

检查文本字段的存在' b'也许b正在获取值null并且使用该null值调用tap()方法。

尝试这样,

let app = XCUIApplication()
 let elementsQuery = app.scrollViews.otherElements
 if(elementsQuery.textFields["XXXXXXXX"].exists)
{
  let x = elementsQuery.textFields["XXXXXXXX"]
  x.tap()
}
if(elementsQuery.textFields["YYYYYYYY"].exists)
{
  let y = elementsQuery.textFields["YYYYYYYY"]
  y.tap()
}

设置一个断点并检查它是否存在。

相关问题