我正在写黄瓜测试代码, 我明白了:
Unable to find field "username" (Capybara::ElementNotFound)
但我在页面上有以下内容。
<%= f.text_field :username, :placeholder => "Username" %>
我已经检查过它使用
登陆正确的页面save_and_open_page
fill_in "username", :with => "TESTUSER"
不是标签:用户名?我该怎么写呢?
答案 0 :(得分:1)
Capybara将根据其ID,名称或标签文本匹配字段。有关详细信息,请参阅here。
由于您使用的是默认的text_field助手,因此ID和名称默认包含模型(例如,user_username
代表ID,或user[username]
代表名称)。您可以更改这些默认设置,只需在id: <id>
电话上使用name: <name>
或text_field
,但您可能会在以后遇到其他问题 - 因此最好继续使用默认值。
将您的水豚测试更改为fill_in "user_username"
或fill_in "user[username]"
以使其匹配。或者,如果您在该字段上有label_for
,则可以匹配标签的文本,这可以使您的测试更具可读性。