KIF フレームワークを使用してアプリを自動化しています。シナリオの 1 つで、UIDatePicker からの日付選択を自動化する必要があります。
誰もこれをやったことがありますか?いくつかのコードを続行または共有する方法についていくつかのアイデアを投げかけます。
どんな助けでも大歓迎です。
ありがとう
KIF フレームワークを使用してアプリを自動化しています。シナリオの 1 つで、UIDatePicker からの日付選択を自動化する必要があります。
誰もこれをやったことがありますか?いくつかのコードを続行または共有する方法についていくつかのアイデアを投げかけます。
どんな助けでも大歓迎です。
ありがとう
setAccessibilityLabel
日付ピッカーで使用し、次のようsetDate
に inKIFTestStep
カテゴリを使用してメソッドを定義します。
+ (id)stepToEnterDate:(NSDate*)date ToDatePickerWithAccessibilityLabel:(NSString*)label
{
NSString *description=[NSString stringWithFormat:@"Enter date to Date picker with accessibility label '%@'",[date description]];
return [self stepWithDescription:description executionBlock:^(KIFTestStep *step, NSError **error)
{
UIAccessibilityElement *element = [[UIApplication sharedApplication] accessibilityElementWithLabel:label];
KIFTestCondition(element, error, @"View with label %@ not found", label);
if(!element)
{
return KIFTestStepResultWait;
}
UIDatePicker *picker = (UIDatePicker*)[UIAccessibilityElement viewContainingAccessibilityElement:element];
KIFTestCondition([picker isKindOfClass:[UIDatePicker class]], error, @"Specified view is not a picker");
[picker setDate:date animated:YES];
return KIFTestStepResultSuccess;
}];
}
より最新の回答。
KIF の次のメソッドを使用します。
- (void) selectDatePickerValue:(NSArray*)datePickerColumnValues;
KIF 3.1.0 で利用可能
これは、カテゴリに入れることができるより最新の(そして非常に基本的な)方法ですKIFUITestActor
- (void)enterDate:(NSDate *)date intoDatePickerWithAccessibilityLabel:(NSString *)label {
[tester runBlock:^KIFTestStepResult(NSError **error) {
UIAccessibilityElement *element;
[self waitForAccessibilityElement:&element view:nil withLabel:label value:nil traits:UIAccessibilityTraitNone tappable:NO];
KIFTestCondition(element, error, @"Date picker with label %@ not found", label);
KIFTestCondition([element isKindOfClass:[UIDatePicker class]], error, @"Specified view is not a picker");
UIDatePicker *picker = (UIDatePicker *)element;
[picker setDate:date animated:NO];
[self waitForTimeInterval:1.f];
return KIFTestStepResultSuccess;
}];
}
次に、次のように使用できます。
[tester enterDate:[NSDate distantPast] intoDatePickerWithAccessibilityLabel:kLocaleDatePicker];