我需要测试媒体播放器的功能。不会有任何问题,但我不知道如何拖放滑块处理程序来更改当前曲目播放位置。
我已经尝试过功能change_slider_value_to
,但它对我不起作用。
当我这样做query "slider"
时,它返回一个空集,当我这样做时,query "GFSliderView"
它返回:
irb(main):014:0> query "GFSliderView"
[
[0] {
"class" => "GFSliderView",
"id" => nil,
"rect" => {
"center_x" => 160,
"y" => 73,
"width" => 176,
"x" => 72,
"center_y" => 81.5,
"height" => 17
},
"frame" => {
"y" => 9,
"width" => 176,
"x" => 72,
"height" => 17
},
"label" => nil,
"description" => "<GFSliderView: 0x1280db60; frame = (72 9; 176 17); autoresize = W+TM+BM; layer = <CALayer: 0x1280da90>>"
}
]
有什么办法可以做类似葫芦-androiddrag
或drag_coordinates
iOS的事情吗?
我试过这些命令:
send_uia_command :command => "dragFromToForDuration({startOffset:#{from}, endOffset:#{to}, duration:4});"
(from
滑块处理程序的实际位置在哪里,并且值to
增加了)from
center_x
uia('target.mainWindow().sliders()[0].dragToValue(0.5);')
change_slider_value_to "SliderHandle.png", 0.2
map("GFSliderView", :changeslider, 0.2)
(也尝试使用其他值,例如 10、0.8 或 100)
他们都没有工作 - 其中一些导致模拟器中的应用程序崩溃,其中一些只是让控制台卡住。
我在使用 Calabash 方面不是很先进(我已经使用了将近两个月),而且我对应用程序开发和 UIA 命令一无所知,所以我可能犯了一些愚蠢的错误。