使用页面对象元素作为watir"方法"。可能吗?

时间:2016-03-16 10:14:52

标签: ruby watir-webdriver page-object-gem

我有两个页面对象元素:

images(:new_number, src: '/static/images/sec_core/plus.png')
text_fields(:users, class: 'custom-combobox-input ui-widget ui-widget-content ui-state-default ui-corner-left ui-autocomplete-input')

如果我使用以下代码,我可以使用它来点击HTML中图像列表的最后一张图像:

users_elements[user_index].parent.parent.parent[1].image_elements(:src => '/static/images/sec_core/plus.png').last.parent.when_present.click

不能以某种方式重复使用页面对象元素,作为一种方法"方法"为了避免重复代码,这与此类似:

users_elements[user_index].parent.parent.parent[1].new_number_elements.last.parent.when_present.click

1 个答案:

答案 0 :(得分:1)

这里的答案很大程度上取决于您如何实现页面对象。如果您使用的是自己的代码,或Cheezy's Page-Object gem之类的图书馆,或Test-Factory gem Abe Heward和我在rSmart(Abe做了所有繁重的工作)时做饭了

我没有充分利用Cheezy的宝石来知道你是否可以在那里做到,但我已经定义了与使用页面工厂时类似的方法,这很容易做到(虽然文档没有给出好的例如,我应该解决这个问题)