私は実際にこれに昨日出会った。 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;
}