使用 Selenium 和 Cucumber 在 Ruby 中实例化页面对象

instantiating a page object in Ruby with Selenium and Cucumber

我正在尝试使浏览器自动化以导航网站并单击不同的页面。为此,我有两个 类 AllPages 和继承自 AllPages 的 SearchPage。

我做的第一件事是实例化 AllPages,转到该网站并单击 link,它会引导我进入 Searchpage,此时我尝试使用这些代码行实例化 SearchPage

所有页面:

def return_search_page browser
    @browser = browser
end

步骤:

  @newpage = AllPages.new @browser
  @searchpage = @newpage.return_search_page @newpage
  @searchpage.find_searchbox

我尝试 运行 时遇到的错误是: "undefined method `find_searchbox' for #< AllPages:0x00000002632cf0> (NoMethodError)"

我的方法 find_searchbox 位于 SearchPage 中是这样

def find_searchbox
    @browser.find_element(:class, "searchbox")
end

我猜我搞砸了对象@searchpage 的实例化,因为这是在打开浏览器并导航到网站后出现的场景。

任何帮助将不胜感激

def return_search_page browser
  SearchPage.new browser
end

@newpage = AllPages.new @browser
@searchpage = @newpage.return_search_page @browser
@searchpage.find_searchbox

如果您在初始化中设置@browser,则无需将其作为参数传递给#return_seearch_page