簡體   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