capybara的fill_in方法没有按预期工作

时间:2011-09-27 10:51:51

标签: cucumber capybara

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

运行 fill_in label, :with => value 时(label =“Username:”),标记为“用户名”的输入框将被填充。

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

我做错了什么?

1 个答案:

答案 0 :(得分:3)

如果我理解正确,您的页面上有2个不同表格的2个同名文字输入。

我相信fill_in some_field会查找名称或ID与some_field匹配的输入,而不是阅读附加标签。 编辑:它确实会寻找附加标签 - 感谢AlistairH进行更正

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

within 'form1' do
    fill_in 'Username', :with => value
end

将'form1'替换为包含您要定位的文本框的任何形式的名称。

我认为这比依靠空格或冒号的存在更能可靠和可读,以区分页面上几乎同名的元素