46

Cucumber / Capybara / Seleniumスタックを使用してインプレースエディターをテストしようとしていますが、問題は、リンクやボタンではなく、divをクリックしてエディターがアクティブ化されることです。カピバラにこれをさせる方法がわからないようです。これを行う方法はありますか?

4

2 に答える 2

63

を介して要素をクリックできますCapybara::Element.clickweb_steps.rbdivをクリックするために、これに以下を追加します。

When /^(?:|I )click within "([^"]*)"$/ do |selector|
  find(selector).click
end

Element.trigger('mouseover')Seleniumでは機能しませんが、ホバーを有効にするように見えるものもあります。

@javascriptまた、カピバラが提供するタグで機能/シナリオを装飾する必要がある可能性が非常に高くなります。

于 2010-10-08T10:30:55.733 に答える
0

@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行い、テキスト要素を検索します。

この記事はとても良いと思いました。キュウリで書くことができるさまざまな種類のステップについて説明しています。

于 2018-03-16T15:36:51.760 に答える