[解決済み] Rspec/Capybaraのfill_inはどのように機能するのですか?
質問
Michael HartlのRuby on Rails Tutorialに従っています。rspec/capybaraを使用する際、fill_inメソッドで混乱しています。私は次のようなビューコードを持っています。
<%= f.label :name %>
<%= f.text_field :name %>
これは私のテストコードです。
fill_in "Name", with: "Example User"
fill_inが入力フィールドを見つけるには、labelとtext_fieldの両方が必要なようです。もし私が
f.label
を変更するか
<%= f.text_field :name %>
に変更する。
<%= f.text_field :another_name %>
の場合、テストは私に
ElementNotFound
というエラーが発生します。どなたか、ここで fill_in がどのように機能するか説明していただけますか?入力フィールドとラベルの両方が
fill_in
メソッドを使用できますか?
どのように解決するのですか?
それは
記載内容
その
fill_in
フィールドを探す
name
,
id
またはラベルテキストを指定します。によると
ActionView::Helpers::FormHelper
のセクションでは、ご質問のビューコードは以下のようなhtmlコードに変換されるはずです。
# I assume that you made a form for a @user object
<label for="user_name">
Name
</label>
<input id="user_name" name="user[name]" type="text" />
ご覧の通りです。
label
は、quot;Name" テキストを生成します。
fill_in
という表現があります。しかし
id
と
name
のプロパティは
input
フィールドは微妙に異なるので、本来は
id
ベースのセレクタを使用して、同じ結果を得ることができます。
fill_in "user_name", with: 'Example User'
では、まとめます。
label
フィールドは必須ではありませんが、html コードをよく観察し、適切なパラメータを選択して
fill_in
を表現することができます。
関連
-
[解決済み】Webpacker::Manifest::MissingEntryError【クローズド
-
[解決済み】OS X Yosemite 10.10.5 で [Ruby on Rails] 5 をインストールすると extconf が失敗して終了コード 1 エラーになる。
-
[解決済み] 新規ユーザー作成時に ActiveModel::ForbiddenAttributesError が発生する。
-
[解決済み] RailsのRootディレクトリのパス?
-
[解決済み] Ruby on Railsのためにnetbeansを構成する方法は?
-
[解決済み] Errno::EACCESS: パーミッションが拒否された @ dir_s_mkdir
-
[解決済み] Railsコントローラからホスト名を取得する
-
[解決済み] Heroku: 既存のrailsアプリにseeds.rbをプッシュする方法?
-
[解決済み] Ruby on rails アプリで ES6 (ES2015) を使用するにはどうすればよいですか?
-
[解決済み] Railsコンソール:リロード!モデルファイルの変更が反映されない?考えられる理由は何でしょうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Railsです。NameError: 初期化されていない定数
-
[解決済み] heroku open - no app specified
-
[解決済み] AWS S3です。アクセスしようとしているバケットは、指定されたエンドポイントを使用してアドレスされている必要があります。
-
[解決済み] Ruby on rails "No route matches" (ルートに一致するものがない)。
-
[解決済み] Ruby on Railsのためにnetbeansを構成する方法は?
-
[解決済み] Paramが無いか、値が空である。ParameterMissing in ResultsController#update
-
[解決済み] "render :nothing => true" は空のプレーンテキストファイルを返すのですか?
-
[解決済み] rails consoleを起動するとRailsのイニシャライザーが呼ばれる?
-
[解決済み] ルビーオンレール モデルから明確な値を選択する
-
[解決済み] RSpecとCucumberの違いは何ですか?[クローズド]