17

デフォルトでは、Seleniumは、Cucumberを使用して定義したシナリオで可能な限り高速に実行されます。低速で動作するように設定したいので、プロセスのビデオをキャプチャすることができます。

のインスタンスにメソッドSelenium::Client::Driverがあることがわかりましたset_speed。これはJavaAPIに対応しています

Selenium::Client::Driverクラスのインスタンスを取得するにはどうすればよいですか?まで取得できますpage.driverが、それはのインスタンスを返しますCapybara::Driver::Selenium

4

5 に答える 5

24

http://groups.google.com/group/ruby-capybara/msg/6079b122979ffad2のヒントに感謝します。

これはRubyのスリープを使用しているため、多少不正確ですが、あなたのために仕事をするはずです。また、 execute はすべてに対して呼び出されるため、1秒未満の待機になります。中間ステップ - 準備が整うまで待ち、フィールドをチェックし、フォーカスし、テキストを入力する - それぞれ一時停止します。

features/support ディレクトリに "throttle.rb" を作成し (Cucumber を使用している場合)、以下を入力します。

require 'selenium-webdriver'
module ::Selenium::WebDriver::Firefox
  class Bridge
    attr_accessor :speed

    def execute(*args)
      result = raw_execute(*args)['value']
      case speed
        when :slow
          sleep 0.3
        when :medium
          sleep 0.1
      end
      result
    end
  end
end

def set_speed(speed)
  begin
    page.driver.browser.send(:bridge).speed=speed
  rescue
  end
end

次に、ステップ定義で、次を呼び出します。

set_speed(:slow)

また:

set_speed(:medium)

リセットするには、次のように呼び出します。

set_speed(:fast)
于 2011-03-01T05:29:40.967 に答える