0

私は Web アプリケーションのテストに cucumber フレームワークを使用しています。スクリプトを開発しているので、コードに何かを追加した後は毎回ブラウザーを何度も起動する必要があります。私の質問は、「既に開いているブラウザーで ruby​​(.rb) ファイルからコマンドを実行することは可能ですか??」です。これにより、多くの時間を節約できます。私のフレームワークは、キュウリ、カピバラ、およびセレンの webdriver に基づいています。

前もって感謝します

4

3 に答える 3

1

Selenium Webdriver で既存のブラウザーを使用することはできません。

ただし、ブラウザーよりも高速で起動時間が短いドライバー (Capybara-Webkit、Poltergeist、Webdriver の HtmlUnitDriver) があります。たぶん、彼らはあなたのために良いでしょう.

于 2013-01-09T07:16:11.210 に答える
0

私は、Selenium Webdriver のモンキー パッチを適用したバージョンを使用してきました。これにより、テスト実行の間、PhantomJS ブラウザーを開いたままにできます。このブログ投稿を参照してください: http://blog.sharetribe.com/2014/04/07/faster-cucumber-startup-keep-phantomjs-browser-open-between-tests/

秘訣は、メソッドをスタブSelenium::WebDriver::PhantomJS::Service.create_process化し、予約済みであってもデフォルトのポート 8910 を使用するように Selenium ドライバーに指示することです。

このコードを config/test.rb ファイルに追加できます。

class Selenium::WebDriver::PortProber
  def self.free?(port)
    true
  end
end

class Selenium::WebDriver::PhantomJS::Service
  def create_process(args)
    puts "Starting monkey-patched PhantomJS Selenium Webdriver"

    Struct.new("ChildProcessFake") do
      def start() end
      def exited?() true end
    end.new
  end
end

これで、ターミナル タブで PhantomJS を開始できます。

phantomjs --webdriver=8910

PhantomJS を実行したら、Cucumber テストを開始できます。

明らかに、これは PhantomJS でのみ機能しますが、同様のものが他のブラウザーでも機能する可能性があります。

于 2014-04-14T09:02:52.093 に答える
0

正確に何が欲しいかわからない... UIコードで何かを変更するたびに「F5」を押す必要がある場合は、guard gemの使用を検討してください。

「ビュー」を編集すると、アプリに含まれるguard + guard-livereloadとrack-livereloadが自動的にブラウザを更新します。

于 2013-01-09T10:39:39.317 に答える