JavaScriptのテストを行うために、SeleniumWebドライバーを数日間実装しようとしています。にgemをインストールして含めましselenium-webdriver
たGemfile
。, js: true
Rspecテストに追加することで、いくつかの簡単なテストに合格します。
他に何も必要ありませんでした:テストが実行されると、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
ですか?