【问题标题】:How to Automate Selecting Date from UIDatePicker using KIF Framework如何使用 KIF 框架从 UIDatePicker 自动选择日期
【发布时间】:2013-03-15 09:58:19
【问题描述】:

我正在使用 KIF 框架自动化我的应用程序。对于其中一种情况,我需要从 UIDatePicker 自动选择日期。

以前有人做过吗?并就如何继续或共享一些代码提出一些想法。

非常感谢任何帮助。

谢谢

【问题讨论】:

    标签: ios uidatepicker ios-ui-automation kif


    【解决方案1】:

    更新的答案。

    使用 KIF 中的此方法:

    - (void) selectDatePickerValue:(NSArray*)datePickerColumnValues;

    在 KIF 3.1.0 上可用

    【讨论】:

      【解决方案2】:

      这是一个更新的(也是非常基本的)方法,您可以在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];
      

      【讨论】:

        【解决方案3】:

        在日期选择器上使用setAccessibilityLabel,然后在KIFTestStep 类别中使用setDate 定义一个方法,如下所示:

        + (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;         
                    }];
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-09-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-07-13
          相关资源
          最近更新 更多