Capybara没有在名称中找到带下划线的元素

时间:2011-08-14 06:15:50

标签: capybara

我想知道我是否遗漏了某些东西,或者我是否发现了一个错误;希望别人可以提供帮助。

我在表单上有很多字段。所有具有单个单词名称的单词都被找到并填充,没问题。所有具有多个单词名称的单词都没有。这是预期的行为吗?

示例:

fill_in "Something", :with=> "value" 

作品

fill_in "Something Else", :with => "another"

没有

我已经尝试将其更改为:

fill_in "something_else", :with => "another"

那也失败了,同样的消息

"cannot fill in, no text field, text area or password field with id, name, or label 'something_else'"

我想知道,如果Capybara期望_是边界,那么如果他们有多个像这样的话就找不到它们。其他人遇到这个问题?有修复吗?

2 个答案:

答案 0 :(得分:1)

经过一段时间的修补之后,我发现这样做的方法是实际传递你期望在那里的全名属性(我想匹配器无法推断空格的哪些部分是对象名称副财产的名称)。它遵循以下形式:

fill_in "obj[one_two]", :with=> "value"

因此,假设您要填写用户注册表单,可能是:

fill_in "user[password_confirmation]", :with => @password

鉴于您之前填充了@password

答案 1 :(得分:0)

我知道这是一个老问题,但这对我来说是在水豚(2.3.0)中有用,可能对其他人有所帮助:

fill_in "Password confirmation", with: "test"

注意小写“c”,这也适用于嵌套形式。

因此,根据我可以收集的内容,如果字段名称的第一个字母包含空格,则它应该是大写。