我的应用程序上有一个UIPickerView,有一个值列表,我们可以使用Colors。选择器只有一个轮子,我设法通过使用以下代码选择值:
let app = XCUIApplication()
app.launch()
app.pickerWheels.element.adjustToPickerWheelValue("Yellow")
但我想要做的是在数组中获取此轮的所有可能值,因此我可以使用数组值在选择器中进行选择。
另一个好的解决方案是通过索引而不是按键进行选择,但我找不到这样做的方法。有人?
答案 0 :(得分:0)
我也在另一个问题上发布了这个问题。您可以将选取器中的值数量设为x,然后将此函数调用x次。当值更新选择器关联的单元格时,您可以从那里获取值以将其添加到数组中。
如果您有疑问,请告诉我......
解决方法:
var image = ImageSourceModule.fromNativeSource(a);
var base64 = image.toBase64String('png');
您可能需要根据选择器的位置调整dx值。
let pickerWheel = XCUIApplication().pickers.pickerWheels.element
let appWindowHeight = XCUIApplication().windows.elementBoundByIndex(0).frame.height
let pickerWheelCellHeight = GFloat(44)
func advancePickerWheelOneValue() -> Self {
let topScrollPoint = Double(pickerWheel.frame.midY/appWindowHeight)
let bottomScrollPoint = Double((pickerWheel.frame.midY + pickerWheelCellHeight)/appWindowHeight)
let topScreenPoint = XCUIApplication().windows.elementBoundByIndex(0).coordinateWithNormalizedOffset(CGVector(dx: 0.5, dy: topScrollPoint))
let bottomScreenPoint = XCUIApplication().windows.elementBoundByIndex(0).coordinateWithNormalizedOffset(CGVector(dx: 0.5, dy: bottomScrollPoint))
bottomScreenPoint.pressForDuration(0, thenDragToCoordinate: topScreenPoint)
return self
}
但是如果选择器占据屏幕的宽度,则0.5可以工作。
使用此方法,您可以一次移动选择器的值。多次调用它,你就可以得到你想要的值。
它不理想但如果你想检查某些索引它会有所帮助。希望你必须在具有数百个值的选择器上使用它;)