7

JavaScriptのテストを行うために、SeleniumWebドライバーを数日間実装しようとしています。にgemをインストールして含めましselenium-webdriverGemfile, js: trueRspecテストに追加することで、いくつかの簡単なテストに合格します。

他に何も必要ありませんでした:テストが実行されると、FirefoxウィンドウがCapybaravisit path("/news/#{news_item.id}")でファイルの前に指定された現在のページを開き、ボタンがクリックされて非表示のフォームが表示され、フィールドが入力され、送信ボタンが押されます。問題なし。テストに合格し、ブラウザが閉じます。

より複雑なテストに進むには、Webドライバーのメソッドを呼び出す必要がありますが、明示的に作成しなかったため、アクセス方法がわかりません。ただし、を使用して独自のインスタンスを作成したい場合はdriver = Selenium::WebDriver.for :firefox、2番目のブラウザインスタンスが開き、Capybaraが移動したページを開くのではなく完全に空白になります。

私の質問は、使用されているデフォルトのWebドライバーにアクセスして、empty_stars = driver.find_element(:class, "empty-stars-container")やなどのメソッドを呼び出すにはどうすればよいdriver.action.move_to(empty_stars).performですか?

4

1 に答える 1

10

以下を使用して、Capybara の webdriver にアクセスできます。

page.driver.browser

したがって、次のようなことをしたいと思うでしょう:

empty_stars = page.driver.browser.find_element(:class, "empty-stars-container")
于 2012-07-31T16:36:03.167 に答える