如何将page-object-gem与IRB一起使用?

时间:2015-05-03 22:02:37

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

使用watir-webdriver,您可以在使用IRB(交互式ruby)进行开发时测试代码。 但是,当使用page-object gem时,这似乎不起作用。 当我运行ruby程序时,我可以看到我的页面对象调用正在运行。 IRB并不明白这一点。例如。这是我在IRB中输入的内容:

male

然后我手动导航到我想要的页面并返回IRB:

require 'page-object'
require 'watir-webdriver'
b = Watir::Browser.new :chrome

IRB返回true。因此,watir-webdriver知道页面上存在表控件。我们可以在页面对象中做同样的事情吗? 继续在IRB编码:

b.table(:id => 'manage-groups-list').present?

然后我尝试从IRB获取表的内容。但是,这会返回错误:

class ManageGroupsPage
include PageObject
table(:groupsList, :id => 'manage-groups-list')
end

我使用的是page-object 1.0.3,watir-webdriver 0.6.11和Ruby 1.9.3。

2 个答案:

答案 0 :(得分:4)

查看他们的Builder Pattern文档,似乎在调用

table :groupsList, id: 'manage-groups-list'

生成实例方法而不是类方法。所以你需要像这样调用生成的方法:

b = Watir::Browser.new :chrome
page = ManageGroupsPage.new(b) # build a new page object
page.groupsList # call the instance method

答案 1 :(得分:0)

你也可以使用'pry'宝石。添加到您的env文件require 'pry',然后您希望代码停止/检查的位置,添加binding.pry