如何设置SLTextField?

时间:2014-05-23 21:50:50

标签: objective-c testing uitextfield automated-tests subliminal

我一直在和#34; Subliminal" " SLTextField"并且最近遇到了一些非常烦人的问题。

我已经编写了一个测试,该测试应该更新文本字段,清除它并再次更新。

出于某种原因,当我使用" SLTextField"更改元素文本我一直收到错误,说明" SLTextFields"不是可以安装的元素。这是真的?如果是这样,有一个" SLTextField"什么课?

我可以重写相同的测试代码,将元素作为" SLElement"找到,此时我可以点击元素,打开键盘对象并输入必要的文本,但看起来像我和#39;在这样做时绕过潜意识的整个功能。

"什么是错误的" SLTextField"?

代码:

SLTextField *textField = [SLTextField elementWithAccessibilityLabel:fieldName];
SLWaitUntilTrue([textField isTappable], DEFAULT_TIMEOUT);
textField.text = newValue;

上面的代码抛出一个错误,说明" textField"从来没有变得可以接受。或者,下面的代码可以完美地运行,虽然它不必要地冗长,并且似乎使得" SLTextField"多余的。

代码:

SLElement *field = [SLElement elementWithAccessibilityLabel:fieldName];
[field tapAtActivationPoint];
//fill with text
SLKeyboard *kb = [SLKeyboard keyboard];
SLKeyboardKey *deleteKey = [SLKeyboardKey elementWithAccessibilityLabel:@"Delete"];
while(![field.value isEqualToString:@""]){
    [deleteKey touchAndHoldWithDuration:1.2];
}
[kb typeString:newValue];
SLKeyboardKey *doneKey = [SLKeyboardKey elementWithAccessibilityLabel:@"Next"];
if(![doneKey isValid]){
    doneKey = [SLKeyboardKey elementWithAccessibilityLabel:@"Done"];
}
[doneKey tap];
[kb hide];

1 个答案:

答案 0 :(得分:3)

您的文本字段是否在UITableViewCell中?你在iOS 7上看到这个吗?

如果是这样,它可能已被https://github.com/inkling/Subliminal/pull/202修订(2014年6月6日合并)。