2010-10-06 74 views
0

在下面的UI自动化脚本代码,我能够从一个UIPickerView得到的值,但我不能够选择的选择器:如何处理UI自动化iPhone应用程序测试中的UIPickerView?

var picker = window.pickers(); 

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

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

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

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

UIALogger.logMessage("picker Values count: " + pickerWheelsValues); 

pickerWheels[0].values()[0].tap(); 

什么可能我是做错了什么?

回答

2

答案是在apple dev forums消息242678.

基本上你必须:

pickerWheel.tapWithOptions({x:hitPointX, y:hitPointY}, {touchCount:1, tapCount:1}); 

的诀窍是,Hitpoint的必须是下一首或上排。

0

您应该使用.selectValue()方法。

var value = pickerWheels[0].values()[0]; // or any other valid value 
pickerWheels[0].selectValue(value); 

我发现在某些情况下,selectValue引发“试图运行脚本时发生异常。”这在目标未正确设置时发生 - 记录元素树并检查UAITarget名称是否不为空(在模拟器的情况下,它应该是“iPhone Simulator”)。请参阅在目标选择下编辑活动目标,并确保在选项正确模拟器版本(您已编译)下设置。

0

对于XCUIAutomation(iOS的10+)

app.pickers 
    .children(matching: .pickerWheel) 
    .element 
    .adjust(toPickerWheelValue: "My Value") 
相关问题