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>>"
  }
]

calabash-androiddragdrag_coordinatesiOS のようなことを行う方法はありますか?

これらのコマンドを試しました:

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

(はfromスライダー ハンドラーの実際の位置で、値を増やした場合)tofromcenter_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 の使用にあまり詳しくありません (ほぼ 2 か月間使用しています)。また、アプリの開発と UIA コマンドについて何も知らないため、愚かな間違いを犯した可能性があります。

4

1 に答える 1

0

私は最終的に解決策を見つけました。私はdragFromToForDuration間違った方法でメソッドを使用していました。

次に、次のコマンドを実行します。

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

(ここでstart_x、 とstart_yは開始点の座標で、end_xend_yはドラッグの終了位置を示します)。それは私にとって完璧に機能しています。

ここに投稿して、人々が解決策をすばやく見つけられるようにし、私のようなばかげた間違いを犯さないようにすることにしました:)

于 2014-08-25T13:47:48.693 に答える