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

时间:2015-10-08 19:55:47

标签: ruby selenium selenium-webdriver cucumber

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

我做的第一件事是实例化AllPages,转到网站并点击一个链接,引导我到一个Searchpage,此时我尝试使用这些代码行来实例化SearchPage

所有页:

def return_search_page browser
    @browser = browser
end

步骤:

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

我试图运行这个错误是: “未定义的方法`find_searchbox'用于#< AllPages:0x00000002632cf0>(NoMethodError)”

我的方法find_searchbox位于SearchPage中就是这个

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

我猜我正在捣乱对象@searchpage的实例化,因为那是在打开浏览器并导航到网站之后的情况。

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

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