1. ホーム
  2. forms

[解決済み] カピバラを使って、フォームのフィールドが正しくプリフィルドされているかどうかを確認するにはどうすればよいですか?

2022-04-26 09:33:48

質問

適切なラベルを持つフィールドがあり、カピバラで問題なく入力できるのですが。

fill_in 'Your name', with: 'John'

記入する前に持っている値を確認したいのですが、それがわかりません。

の後に追加すると fill_in には、次のような行があります。

find_field('Your name').should have_content('John')

このテストは失敗しました。しかし、私はページを保存して確認したように、直前の充填が機能しました。

何が足りないのでしょうか?

解決方法は?

を使用することができます。 xpath クエリ があるかどうかを確認するために input 要素に特定の値 (例: 'John') を指定します。

expect(page).to have_xpath("//input[@value='John']")

参照 http://www.w3schools.com/xpath/xpath_syntax.asp をご覧ください。

もっときれいな方法に。

expect(find_field('Your name').value).to eq 'John'

編集部:今ならhave_selectorを使うかもしれません。

expect(page).to have_selector("input[value='John']")

ページオブジェクトパターンを使っている場合(使うべき!)

class MyPage < SitePrism::Page
  element :my_field, "input#my_id"

  def has_secret_value?(value)
    my_field.value == value
  end
end

my_page = MyPage.new

expect(my_page).to have_secret_value "foo"