所以我有一个窗口通过点击一个菜单项出现。通常情况下,第一个文本框会获得即时的键盘焦点,但在UITest中,窗口中没有任何东西获得键盘焦点(没有聚焦环)。这是问题,因为它阻止我输入到文本字段与textField.typeText("someText")
XCode UITest不会给NSTextField键盘焦点
我试图.click()
在窗口和文本框上试图给它的焦点,但没有什么似乎使窗口或文本框的重点。 任何帮助,将不胜感激
例
MainMenu().menuItemForWindow.click() // Opens window
app.windows["windowTitle"].textFields["textBoxId"].click() // Clicks but field does not gain focus
app.windows["windowTitle"].textFields["textBoxId"].typeText("SomeText") // Is not typed into the textField
作为一个方面说明,我已经验证了我的全部查询实际上做的元素存在。
编辑:
我得到它的字面滥发typeText()
直到它改变给定文本框的东西,如
if let oldValue = textbox.value as? String {
var newValue: String? = oldValue
while newValue == oldValue {
textbox.typeText("a")
newValue = textbox.value as? String
}
//If we get here then we have edited the text box
textbox.typeText(XCUIDeleteKey) // Get rid of spam text
//TYpe what I want
//...
}
但是这种方法是哈克价值的工作,我不能除了启发式(大约15-30s)之外,我真的想把时间放在一边,所以我希望有人能够帮助解释一种更好的方式来确保对文本框的关注,或者至少解释我最初做错了什么。任何帮助将不胜感激。
当您在没有测试的模拟器中运行应用程序时,键盘是否自动出现?您是否尝试过在模拟器上切换硬件键盘设置? – Oletha
这是在OSX而不是iOS上 –