gpt4 book ai didi

ruby-on-rails - fill_in 在 Rspec/Capybara 中如何工作?

转载 作者:行者123 更新时间:2023-12-04 00:19:16 26 4
gpt4 key购买 nike

我正在关注 Michael Hartl 的 Ruby on Rails 教程。当我使用 rspec/capybara 时,fill_in 方法让我感到困惑。我有以下 View 代码:

 <%= f.label :name %>   
<%= f.text_field :name %>

这是我的测试代码:
 fill_in "Name", with: "Example User"

似乎 label 和 text_field 都是 fill_in 定位输入字段所必需的。如果我要么起飞 f.label或更改 <%= f.text_field :name %>成为 <%= f.text_field :another_name %> ,测试会给我 ElementNotFound错误。谁能解释一下 fill_in 是如何工作的? fill_in 是否需要输入字段和标签?方法?

最佳答案

statedfill_in寻找字段 name , id或标签文本。根据ActionView::Helpers::FormHelper rails guides部分,您询问的 View 代码应翻译为以下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生成了“名称”文本,您在 fill_in 中要求提供该文本表达。但是 idname input 的属性字段略有不同,所以您应该使用 id基于选择器来实现相同的结果:
fill_in "user_name", with: 'Example User'
所以,总而言之, label字段不是必需的,但您应该仔细观察您的 html 代码并为 fill_in 选择适当的参数表达。

关于ruby-on-rails - fill_in 在 Rspec/Capybara 中如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26072095/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com