1

KIFフレームワークでいくつかのシナリオを作成しようとしています。たとえば、追加する場合:

[scenario addStep:[KIFTestStep stepToTapViewWithAccessibilityLabel:@"MyUIButtonAccessibilityLabel"]];

UIControlEventTouchUpInsideは、accessibilityLabel@"MyUIButtonAccessibilityLabel"を持つUIButtonに対しては起動されません。

uigesturerecognizerがKIFのUIControlEventTouchUpInsideに干渉していませんか?KIFでこれに対する回避策はありますか?

4

1 に答える 1

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;
}
于 2013-01-29T18:33:17.670 に答える