gpt4 book ai didi

ios - 未调用使用 KIF dateChangedAction 的 UIDatePicker 自动化

转载 作者:行者123 更新时间:2023-12-01 19:11:06 24 4
gpt4 key购买 nike

我正在使用 KIF 在 UIDatePicker 上自动选择日期。如果日期发生变化,我添加了可访问性标签并为选择器设置目标。

引用:http://bit.ly/140ICwo

+(id) changeDate: (NSDate *) myDate
{

[s addStep:[KIFTestStep stepToEnterDate:myDate ToDatePickerWithAccessibilityLabel:@"datePicker"]];
[self wait:s timeInSeconds:3];
[s addStep:[KIFTestStep stepToTapViewWithAccessibilityLabel:@"Done" traits:UIAccessibilityTraitButton]];
return s;
}

- (void) ViewDidLoad
{
...
datePicker.maximumDate = lastAvailableDate;
datePicker.date = (dateValue ? dateValue : [NSDate date]);
[datePicker addTarget:self action:@selector(dateChangedAction:)
forControlEvents:UIControlEventValueChanged];
self.datePicker.accessibilityLabel = @"datePicker";
self.footerLabel.accessibilityLabel = @"datelabel";
}


- (IBAction)dateChangedAction:(id)sender
{
[dateValue release];
dateValue = [datePicker.date retain];
dateCell.detailTextLabel.text = [[[self class] sharedFormatter] stringFromDate:dateValue];
[self setDateTitleText:[[[self class] sharedFormatter] stringFromDate:dateValue]];
}

选择器在给定日期旋转并停止,但是“dateChangedAction”函数没有被调用,因此显示所选日期的标签没有得到更新。

如果我在没有 KIF 的情况下运行应用程序,一切正常。此外,我尝试在运行 KIF 时手动选择一个日期以检查它是否更新了标签,但似乎 UI 被卡住,我无法单击任何 UI 控件。

看起来问题与此帖子有关

http://bit.ly/10xtbqU

很感谢任何形式的帮助。

谢谢

最佳答案

我遇到了你刚刚错过的同样问题

[picker sendActionsForControlEvents:UIControlEventValueChanged];

触发 dateChangedAction 回调,
换句话说,试试这个:
+ (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];

// trigger the UIControlEventValueChanged in case of event listener
[picker sendActionsForControlEvents:UIControlEventValueChanged];

return KIFTestStepResultSuccess;
}];
}

关于ios - 未调用使用 KIF dateChangedAction 的 UIDatePicker 自动化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16555693/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com