3

Cucumber ドライバーのブラウザー インスタンスの作成に問題があります。「Before do」内のenv.rbにオブジェクトを作成すると、次のようになります。

Before do
@browser = Watir::Browser.new 'firefox'
end

…正常に動作し、機能ごとに新しいブラウザを開き、「実行後」に閉じます。

新しいブラウザがすべての機能を起動して閉じるため、実行が遅くなります。しかし、すべての機能に対して同じブラウザー セッションを使用するために「実行前」から @browser を作成すると、次のエラーが発生します。

**Unable to pick a platform for the provided browser (RuntimeError)**

...テストをまったく開始していません。私は page-objects gem、ruby-on-rails を使用しています...

私が間違っていることを教えてください。どうもありがとう!

4

1 に答える 1

5

あなたが得ているエラーがどこから来ているのか正確にはわかりませんが、スコープの問題だと思います。@browser を env.rb だけで (フックではなく) 宣言すると、ステップで @browser は nil になります。

Alister Scott は、ブラウザーを 1 回だけ開くように設定する良い例を示しました ( http://watir.com/2011/01/22/simple-cucumber-watir-page-object-pattern-framework/ )。

基本的に、次のものが必要です(どの変数が browser と @browser であるかに注意してください):

browser = Watir::Browser.new 'firefox'

Before do
  @browser = browser
end

at_exit do
  browser.close
end
于 2012-06-13T16:23:54.767 に答える