如何在UI Automation iPhone应用程序测试中处理UIPickerView?

时间:2010-10-06 11:53:36

标签: javascript iphone xcode cocoa-touch ios-ui-automation

在以下UI Automation脚本代码中,我可以从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();

我可能做错了什么?

4 个答案:

答案 0 :(得分:2)

答案在apple dev forums消息242678中。

基本上你必须:

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

诀窍是hitPoint必须位于下一行或上一行。

答案 1 :(得分:1)

这是pickerWheel自动化的精美javascript实现 https://devforums.apple.com/message/242678

答案 2 :(得分:0)

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

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

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

答案 3 :(得分:0)

适用于XCUIAutomation(iOS 10 +)

app.pickers
    .children(matching: .pickerWheel)
    .element
    .adjust(toPickerWheelValue: "My Value")