[ruby] Cucumberで半角記号で終わるラベル文字列を指定する方法
featureの中では入力フィールドは通常ラベル文字列を指定しますが、"パスワード(確認)"に"zzzzzz"と入力するのように半角記号で終わるラベル名を指定すると Could not find field: "パスワード(確認)" (Webrat::NotFoundError) のようなエラーになってしまいます。
原因は、Webratの中でラベル文字列は以下のようなマッチングです。
text(label_element) =~ /^\W*#{Regexp.escape(@value.to_s)}\b/i
正規表現の最後の \b がくせ者です ^^; 半角記号がある場合は 単語 とみなされなくなりラベルとして扱われなくなります。
対処としては
- アプリ(テンプレート)が変更できるようなら 全角記号を使う
- ラベル文字列以外、 nameも指定できるので "login[password_confirmation]" を指定する
- ラベル文字列は最後まで指定しなくても良いので "パスワード(確認" と指定する
などでしょうか・・・・ ^^);