你如何处理 UI 自动化 iPhone 应用程序测试中的 UIPickerView?
Posted
技术标签:
【中文标题】你如何处理 UI 自动化 iPhone 应用程序测试中的 UIPickerView?【英文标题】:How do you handle a UIPickerView in UI Automation iPhone application testing? 【发布时间】:2010-10-06 11:53:35 【问题描述】:在以下 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();
我可能做错了什么?
【问题讨论】:
【参考方案1】:答案在apple dev forums消息242678中。
基本上你必须:
pickerWheel.tapWithOptions(x:hitPointX, y:hitPointY, touchCount:1, tapCount:1);
诀窍是 hitPoint 必须在下一行或上一行。
【讨论】:
【参考方案2】:这是pickerWheel自动化的漂亮javascript实现 https://devforums.apple.com/message/242678
【讨论】:
【参考方案3】:你应该使用 .selectValue() 方法。
var value = pickerWheels[0].values()[0]; // or any other valid value
pickerWheels[0].selectValue(value);
我发现在某些情况下 selectValue 会抛出“尝试运行脚本时发生异常”。当目标未正确设置日志元素树并检查 UAITarget 名称是否不为空时会发生这种情况(如果是模拟器,它应该是“iPhone Simulator”)。请参阅目标选择下的编辑活动目标,并确保在选项下设置正确的模拟器版本(您已编译)。
【讨论】:
【参考方案4】:对于 XCUIAutomation (iOS 10+)
app.pickers
.children(matching: .pickerWheel)
.element
.adjust(toPickerWheelValue: "My Value")
【讨论】:
以上是关于你如何处理 UI 自动化 iPhone 应用程序测试中的 UIPickerView?的主要内容,如果未能解决你的问题,请参考以下文章