12

きゅうり/カピバラのテストを作成して、いくつかのアイテムを並べ替えてから保存しようとしています。これを行う最善の方法について何か考えはありますか?

4

5 に答える 5

12

この問題を解決するために JQuery プラグインを開発しました。プラグインと一連のテストとサンプルを含むjquery.simulate.drag-sortable.js を確認してください。

これが役に立つことを願っています!フィードバックは大歓迎です。

マット

于 2011-08-24T13:02:42.173 に答える
2

drag_toメソッドは機能しませんでした。しかし、jquery.simulate.jsを使用したカピバラセレンテストに次の要素を含めることで、リストの最初の要素を最後の位置にドラッグすることができました。

page.execute_script %Q{
  $.getScript("/javascripts/jquery.simulate.js", function(){ 
    distance_between_elements = $('.task:nth-child(2)').offset().top - $('.task:nth-child(1)').offset().top;
    height_of_elements = $('.task:nth-child(1)').height();
    dy = (distance_between_elements * ( $('.task').size() - 1 )) + height_of_elements/2;

    first = $('.task:first');
    first.simulate('drag', {dx:0, dy:dy});
  });
}                 
于 2011-05-09T05:02:58.703 に答える
1

私はこのような Web ステップを使用していますが、正常に動作します。

When /^I drag "([^"]*)" on top$/ do |name|
  item = Item.find_by_name(name)
  sleep 0.2
  src  = find("#item_id_#{item.id}")
  dest = find("div.title")
  src.drag_to(dest)
end
于 2010-11-15T13:57:18.333 に答える
0

私にとっては#drag_toうまくいきましたが、その力は限られているようです.

UI で並べ替え可能なテーブルの行を下に移動するには、3 行のテーブルを作成し、次の Cucumber ステップを実行する必要がありました。

# Super-primitive step
When /^I drag the first table row down$/ do
  element = find('tbody tr:nth-child(1)')
  # drag_to needs to drag the element beyond the actual target to really perform
  # the reordering
  target = find('tbody tr:nth-child(3)')

  element.drag_to target
end

これにより、最初の行が 2 番目の行と交換されます。私の解釈では、カピバラは十分に引きずらないので、実際のターゲットよりもターゲットを設定しました。

注: UI-sortable をtolerance: 'pointer' で構成しました。

于 2016-05-11T09:05:54.590 に答える