繁体   English   中英

您如何在UI自动化iPhone应用程序测试中处理UIPickerView?

[英]How do you handle a UIPickerView in UI Automation iPhone application testing?

在以下UI自动化脚本代码中,我能够从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();

我可能做错了什么?

答案在apple dev论坛消息242678中。

本质上,您必须:

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

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

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

对于XCUIAutomation(iOS 10+)

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM