我是新的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"]尝试了它,但它没有用。
有什么想法吗? 干杯
"连接硬件键盘"已关闭。
答案 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()
}
设置一个断点并检查它是否存在。