在UIAutomation中处理拾取器

时间:2010-10-05 10:21:48

标签: iphone ios-ui-automation uipicker

我的选择器视图只有一个组件,组件中有5个值。

我可以获得轮子的数量和组件中的值,如下所示

var picker = window.pickers(); 

UIALogger.logMessage("picker array count: " + picker.length);

var pickerWheels = picker[0].wheels();
var pickerWheelsValues =pickerWheels[0].values();

当我记录语句时,如“pickerWheels [0] .values()[1]”,它会显示第一项。

问题是,如何利用它?

捡拾器[0] .values()[1] .tap(); //不工作

有人可以提供一些输入,如何点击拾取轮元素?

我也尝试过实现UIPickerViewAccessibilityDelegate并重写 //为每个组件设置accessiblity。

- (NSString *)pickerView:(UIPickerView *)thePickerView accessibilityLabelForComponent:(NSInteger)component{
    thePickerView.isAccessibleElement = YES;
    thePickerView.accessibilityLabel= @"label";
    return @"label";
}

3 个答案:

答案 0 :(得分:1)

O'Reilly上有一条帖子显示了与拣货员互动的一种方式(向下滚动到'zpthacker'发布的回复)。

基本上,它涉及计算在哪里点击选择器以使其前后移动。

为了解决Point的创建问题,需要对样本进行一些调整,例如以下

var tapLoc = new Object();
tapLoc.x = origin.x+tapWidth;
tapLoc.y = tapHeight+origin.y;
target.tap(tapLoc);

答案 1 :(得分:1)

jki的回答几乎是正确的,应该是:

window.pickers()[0].wheels()[0].selectValue("another value");

答案 2 :(得分:0)

您想测试点亮滚轮还是只选择特定值?

为了选择您知道的特定值(在选择器的第一个轮子上),您可以使用:

window.pickers()[0].wheels()[0].setValue("another value");