0

我需要测试媒体播放器的功能。不会有任何问题,但我不知道如何拖放滑块处理程序来更改当前曲目播放位置。

我已经尝试过功能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>>"
  }
]

有什么办法可以做类似葫芦-androiddragdrag_coordinatesiOS的事情吗?

我试过这些命令:

send_uia_command :command => "dragFromToForDuration({startOffset:#{from}, endOffset:#{to}, duration:4});"

from滑块处理程序的实际位置在哪里,并且值to增加了)fromcenter_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 命令一无所知,所以我可能犯了一些愚蠢的错误。

4

1 回答 1

0

我终于找到了解决方案。我只是dragFromToForDuration以错误的方式使用方法。

现在我执行以下命令:

uia("target.dragFromToForDuration({x:'#{start_x}', y:'#{start_y}'}, {x:'#{end_x}', y:'#{end_y}'}, 2)")

(其中start_xstart_y是起点坐标,end_xend_y显示拖动应该结束的位置)。它对我来说非常有效。

我决定在这里发布它以帮助人们快速找到解决方案,而不是像我一样犯下如此愚蠢的错误:)

于 2014-08-25T13:47:48.693 回答