我尝试使用KIF框架制作一些场景。当我添加例如:
[scenario addStep:[KIFTestStep stepToTapViewWithAccessibilityLabel:@"MyUIButtonAccessibilityLabel"]];
使用accessibilityLabel @" MyUIButtonAccessibilityLabel" 不会为UIButton触发UIControlEventTouchUpInside。
uigesturerecognizer是否会干扰KIF中的UIControlEventTouchUpInside?在KIF中有解决方法吗?
答案 0 :(得分:1)
我昨天碰到了这个。 stepToTapViewWithAccessibilityLabel对我应用程序中的所有内容都运行良好,但是我遇到了一个绝对无法使用的按钮。
为了解决这个问题,我最终使用了stepToTapScreenAtPoint(我并不特别喜欢),但似乎工作正常。我还在我的类别中添加了一个void initialize方法,以便我可以确定哪个设备在运行时执行测试,并根据它确定我需要点击的位置:
@implementation KIFTestStep (SLAdditions)
static CGPoint kButtonLocation;
+ (void)initialize
{
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
kButtonLocation = CGPointMake(498.0, 622.0);
else
kButtonLocation = CGPointMake(247.0, 316.0);
}
+ (NSArray *)stepsToDoSomething
{
NSMutableArray *steps = [NSMutableArray array];
[steps addObject:[KIFTestStep stepToWaitForTappableViewWithAccessibilityLabel:@"The Button Label"]];
[steps addObject:[KIFTestStep stepToTapScreenAtPoint:kButtonLocation]];
// Verify that tapping succeeded
[steps addObject:[KIFTestStep stepToWaitForAbsenceOfViewWithAccessibilityLabel:@"The Button Label"]];
return steps;
}