我设置了一个 Cucumber/Watir/PageObject 项目。我正在尝试在实际页面对象内部的 step_definitions 之外设置 @current_page 变量。无论我做什么,我都会得到错误
undefined method `on' for #<TestPage:0x45044d0> (NoMethodError)
test_page.rb
# coding: utf-8
## Test module
class TestPage < AnotherTestPage
include PageObject
div(:test_button, id: 'testbutton')
#
# Opens test page 2
#
# @param [Boolean] test_button defaults to false. If true, the Test button will be selected
# @return [PageObject] the newly created Test2Page page object
#
def open_test2(test_button=false)
test_button.click if test_button
on(Test2Page)
end
end
test_steps.rb
And(/^the Test2 screen is visible$/) do
@current_page.open_test2
end
我已经尝试过include
ing 和extend
ing 两者PageObject::PageFactory
and PageNavigation
,但都没有奏效。我还尝试在 TestPage 文件的底部添加World(TestPage)
和。World(TestPage.new)
那也没用,貌似是因为TestPage
是类。
因此,我的问题是,如何在 PageObject 内部和步骤定义之外@current_page
设置变量