0

我一直在用“Subliminal's”“SLTextField”写一个测试,最近遇到了一些非常烦人的问题。

我写了一个测试,它应该更新一个文本字段,清除它,然后再次更新它。

出于某种原因,当我使用“SLTextField”更改元素文本时,我一直收到错误消息,指出“SLTextFields”不是可点击的元素。这是真的?如果是这样,那么拥有一个“SLTextField”类有什么意义呢?

我可以重写相同的测试代码以将元素查找为“SLElement”,此时我可以点击元素,打开键盘对象并输入必要的文本,但似乎我绕过了 Subliminal 的整个功能在这样做。

“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];
4

1 回答 1

3

您的 TextField 是否在 TableViewCell 中?你在 iOS 7 上看到了吗?

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

于 2014-06-03T18:10:45.770 回答