我刚刚开始使用 Cucumber 和 Webrat,并且正在向现有的 Rails 应用程序添加功能规范。应用程序中的一个页面上有多个表单,代表构建新 Character 对象的不同方式。这是一个简化的示例:
<form id="adopt_character_form">
....
<input type="text" name="character[name]" id="character_name">
...
</form>
<form id="spawn_character_form">
....
<input type="text" name="character[name]" id="character_name">
...
</form>
如您所见,页面上(至少)有两个字段具有相同的名称和 ID,尽管它们的形式不同,但我无法在 Webrat rdoc 或源代码中找到一种方法来指定一个特定的。
我知道我可以更改其中一个的名称或 ID,但我必须偏离 Rails 命名约定才能这样做,我真的不愿意这样做。我也可以将表格放在不同的页面上,但这需要对工作流程进行比我想做的更多的修改。我也可以尝试将它们合并为一个更加模块化和动态的单一形式,但是为了支持给定的测试框架而必须对 UI 进行结构更改似乎有点可疑并且可能并不总是可行的,而且我会需要 javascript。
有没有办法在 Webrat 中指定这些字段之一,或者我应该放弃并在不同的项目上尝试 Cucumber?
最佳答案
您可以使用 webrats within
方法
例如在 cucumber 步骤文件中
#my_steps
Then /^I update character name with "([^\"]*)"$/ do |updated_character|
within '#adopt_character_form'
fill_in "character[name]", :with => updated_character
end
end
希望对你有帮助
关于ruby - 当多个共享相同的名称和 ID 时,如何填写 Webrat 中的特定字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1627343/