黄瓜测试当它在那里时找不到字段

时间:2013-09-10 08:59:02

标签: ruby-on-rails cucumber capybara erb

我正在写黄瓜测试代码, 我明白了:

Unable to find field "username" (Capybara::ElementNotFound)

但我在页面上有以下内容。

<%= f.text_field :username, :placeholder => "Username" %>

我已经检查过它使用

登陆正确的页面
save_and_open_page
fill_in "username", :with => "TESTUSER"

不是标签:用户名?我该怎么写呢?

1 个答案:

答案 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,则可以匹配标签的文本,这可以使您的测试更具可读性。