0

在编写黄瓜测试代码时,我得到:

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

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

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

我已经检查过它是否落在正确的页面上

save_and_open_page
fill_in "username", :with => "TESTUSER"

不是标签:用户名吗?我应该写什么呢?

4

1 回答 1

1

Capybara 将根据其 id、名称或标签文本匹配字段。有关更多详细信息,请参见此处

由于您使用的是默认的 text_field 助手,id 和 name 将默认包含模型(例如user_username,对于 id 或user[username]名称)。您可以id: <id>通过简单地使用或name: <name>在您的通话中更改这些默认值,text_field但您稍后可能会遇到其他问题 - 所以最好保留默认值。

将您的水豚测试更改为fill_in "user_username"fill_in "user[username]"使其匹配。或者,如果您label_for在字段上有一个,您可以匹配标签的文本,这可以使您的测试更具可读性。

于 2013-09-10T10:29:42.493 回答