使用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。
答案 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