如何实时填充多个页面对象文本字段

时间:2014-02-06 10:26:08

标签: ruby cucumber watir page-object-gem

我正在处理问题而无法找到智能解决方案。简而言之:想象一下,我们在页面对象中定义了许多文本字段元素:

 text_field(:txt_field_1, id: 'field1')
 text_field(:txt_field_2, id: 'field2')
 ....

我可以轻松填写​​一个字段:

def fill_field1(content)
 self.txt_field_1 = content
end

......调用方法:

fill_field1('John Doe')

我正在寻找的是使用一个独特的方法填充多个字段,使用页面对象元素名称作为方法参数,例如:

def fill_fields(field, content)
 self.field = content
end

...并以这种方式调用方法:

fill_fields('txt_field_1', 'John Doe')

上面的示例因“未定义的方法”错误而失败。我尝试使用像send()这样的self.send('field') = 'John Doe'方法失败了。我很确定有办法实现这个目标......你能不能对这个问题有所了解?

1 个答案:

答案 0 :(得分:2)

根据示例,您可以使用populate_page_with方法内置的页面对象gem。假设文本字段已在页面对象中定义,则可以执行以下操作:

example_page.populate_page_with :txt_field_1 => 'John Doe'

或者做多个字段,如:

example_page.populate_page_with :txt_field_1 => 'John Doe', :txt_field_2 => 'Jane Doe'