Cucumber/Capybara/Seleniumスタックを使用してインプレースエディターをテストしようとしていますが、リンクやボタンではなくdivをクリックするとエディターがアクティブになるのが問題です。カピバラにこれをさせる方法を理解することができないようです。これを行う方法はありますか?
_Capybara::Element.click
_ で要素をクリックできます。このために_web_steps.rb
_に以下を追加して、divをクリックします。
_When /^(?:|I )click within "([^"]*)"$/ do |selector|
find(selector).click
end
_
Element.trigger('mouseover')
もあり、Seleniumで動作していないにもかかわらずホバーを有効にするように見えます。
また、Capybaraが提供する_@javascript
_タグを使用して機能/シナリオを装飾する必要がある可能性も高くなります。
説明されている@Jim Mitchenerのようなボタン要素をクリックできるほか、次の方法でテキストの一部をクリックすることもできます。
_# WhenI click on the text "Sign in"
When(/^I click on text "(.*?)"$/) do |text|
click_text(text)
end
def click_text(text)
elem = find(:xpath, "//*[contains(translate(text(), '#{text.upcase}', '#{text.downcase}'), '#{text.downcase}')]", match: :first, wait: false)
scroll_to(elem, -200)
elem.click
end
_
このヘルパー関数はfind(selector).click
と同じことを行い、テキスト要素を見つけます。
私は この記事 を見つけました。キュウリで書くことができるさまざまなタイプのステップを説明しています。