Cucumber 水豚';s fill_in方法未按预期工作

Cucumber 水豚';s fill_in方法未按预期工作,cucumber,capybara,Cucumber,Capybara,我的页面中有两张表格。第一个表单有一个字段“Username”,第二个表单有一个字段“Username:” 当fill_in label,:with=>value运行时(其中label=“Username:”),标签为“Username”的输入框将被填充 我将“用户名:”改为“用户名:”但即使这样,“用户名”也会被填充 我做错了什么?如果我理解正确,您在页面上的两个不同表单上有两个同名的文本输入 我相信fill\u in some\u field会查找名称或ID与some\u field匹配的输

我的页面中有两张表格。第一个表单有一个字段“Username”,第二个表单有一个字段“Username:”

fill_in label,:with=>value
运行时(其中label=“Username:”),标签为“Username”的输入框将被填充

我将“用户名:”改为“用户名:”但即使这样,“用户名”也会被填充


我做错了什么?

如果我理解正确,您在页面上的两个不同表单上有两个同名的文本输入

我相信
fill\u in some\u field
会查找名称或ID与
some\u field
匹配的输入,而不是读取附加标签。编辑:它实际上是在寻找一个附加的标签-感谢AlistairH的更正

我建议获得所需行为的最佳方法是在块中使用

within 'form1' do
    fill_in 'Username', :with => value
end
将“form1”替换为包含您要定位的文本框的任何表单的名称


我认为这比依赖空间或冒号来区分页面上几乎相同命名的元素

实际上是从RuuyDoc:“找到一个文本字段或文本区域并用给定的文本填充它,字段可以通过它的名称、ID或标签文本找到”。在匹配标签名称时,值得检查标签上的“for”属性是否引用了正确的输入。在任何情况下,在同一页面上使用几乎相同标签的字段对我来说都是一个奇怪的UI。我们使用的是formtastic v1.1.0,它不支持名称空间。目前我们无法升级到formtastic的更新版本。所以问题就来了。我不熟悉formtastic,但是如果它创建了两个单独的表单元素,它们肯定有某种唯一的标识符吗?HTML ID肯定是不同的,您可以使用它在
块中指定