ruby - 俗气的页面对象。主页 :Class (NoMethodError) 的未定义方法 `text_field'

标签 ruby cucumber page-object-gem

我正在尝试让我的第一个页面对象工作。我是 ruby 和 cucumber 的新手,所以我不确定自己做错了什么。到目前为止,它是一个非常简单的程序。我的目标是去谷歌搜索“培根”

我的支持文件夹中有我的 page_object 文件夹(我认为它应该放在那里,不确定)

我觉得 include PageObject 没有正确执行 include。

首页.rb

class HomePage
  include PageObject


   text_field(:search_box, :id=> 'gbqfq')
   button(:search_button, :id=> 'btnG')

end

stepdeffs.rb

Given /^on google$/ do
 @BROWSER.goto 'www.google.com'
end


When /^i search for bacon$/ do
 @home_page.search_for('Bacon')
end



Then /^BACON!!!!!!$/ do
 @BROWSER.text.include? 'Bacon'
end

环境.rb

require 'watir-webdriver'
require 'rubygems'
require 'page-object/page_factory'

World(PageObject::PageFactory)

Before do
  @BROWSER = Watir::Browser.new
  @home_page = HomePage.new(@BROWSER)
end

gem 文件

source 'https://rubygems.org'

group :test do
  gem 'cucumber'
  gem 'watir'
  gem 'page-object'
end

我得到的错误:

undefined method `text_field' for HomePage:Class (NoMethodError)
C:/ihateautomation/watir/features/support/page_objects/homepage.rb:6:in `<class:HomePage>'
C:/ihateautomation/watir/features/support/page_objects/homepage.rb:2:in `<top (required)>'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/cucumber-1.3.10/lib/cucumber/rb_support/rb_language.rb:122:in `load'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/cucumber-

最佳答案

按以下顺序尝试

需要'watir-webdriver' 需要“页面对象” 需要“页面对象/page_factory”

对我有用...

关于ruby - 俗气的页面对象。主页 :Class (NoMethodError) 的未定义方法 `text_field',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20639914/

相关文章:

ruby - 如何将字符串数组传递给需要字符串但不在数组中的 ruby​​ 方法?

cucumber - 如何让 Cucumber/guard 过滤 @wip 等标签?

watir - 如何在 PageObject 中使用 css 获取元素

javascript - 如何设置从对 .js 或 json 文件的响应中收到的值

java - 使用java获取 cucumber 中未定义的场景和步骤

ruby - 你如何使用页面对象自动确认 ruby​​ 中的模态?

ruby - 使用 Ruby 的 PageObject - 在文本字段中设置文本仅适用于主文件

ruby-on-rails - 使用适用于 Ruby 的 Google Auth 库登录用户

ruby - 查找未分配的弹性 IP

ruby-on-rails - Rails.application.credentials.dig 不工作