2

カテゴリを削除したいキュウリの機能を書いていますが、カテゴリを削除する前に、モーダル画面を表示してユーザーにコンフォメーションを尋ねます。

私はtwitterのブートストラップを使用しており、それらが提供するjavscriptモーダルを使用しています。

しかし、私は立ち往生しているので、これをテストする方法について誰かが直接助けてくれます。これはこれまでの私の機能です:

  Scenario: Delete category with articles
   Given I am logged in as an admin
   And I have category titled Paints
   When I go to the list of categories
   And I push delete button for the Paints category
   Then I should get a popup to confirm

もちろん、機能が最後のものを受け入れるために必要な手順をすでに実装しています。しかし、開始方法がわかりません。

page.driver.browser.switch_to.alert について何かを読みましたが、それが機能するかどうかはわかりません。

誰かアドバイスはありますか?

どうもありがとう。

4

1 に答える 1

7

質問で提案したように、 Selenium Driverでダイアログ ボックスにアクセスできます。Capybara を使用していると仮定しているので、ポップアップを受け入れる/キャンセルするためのステップ定義を定義する方法は次のとおりです。

Then /^I accept the popup to confirm$/
  page.driver.browser.switch_to.alert.accept 
end

Then /^I cancel the popup to confirm$/
 page.driver.browser.switch_to.alert.dismiss
end

編集:モーダルは実際にはウィンドウではないようです...次のように試してみましょう:

モーダル要素が周囲にあることを検出するヘルパー関数を作成します。

def find_modal_element
  wait_until { page.find(modal_element_id).visible? }
end

次に、ステップ定義を変更しましょう。

Then /^I should see a popup window$/
 find_modal_element
 page.find(modal_element_id).text.must_match "Whatever you want it to match"
end
于 2012-06-16T15:21:02.377 に答える