Ruby 未定义的方法`访问页面';对于#<;对象:0x007fe29cb4c798>;(命名者)
当前问题仅在从命令行执行测试时发生。当从RubyMine运行脚本时,我没有问题,从命令行看,它是这样的 cucumber features/regression/createCloudUser.feature-r features/step_definitions/-r lib/ 执行:Ruby 未定义的方法`访问页面';对于#<;对象:0x007fe29cb4c798>;(命名者),ruby,cucumber,bundler,rubymine,page-object-gem,Ruby,Cucumber,Bundler,Rubymine,Page Object Gem,当前问题仅在从命令行执行测试时发生。当从RubyMine运行脚本时,我没有问题,从命令行看,它是这样的 cucumber features/regression/createCloudUser.feature-r features/step_definitions/-r lib/ 执行: Feature: User pages Creation Add user to system Background: # features/regression/
Feature: User pages Creation
Add user to system
Background: # features/regression/createUser.feature:4
Given you are in Cloud Staging # features/step_definitions/is_given_steps.rb:5
undefined method `visit_page' for #<Object:0x007fe29cb4c798> (NoMethodError)
./features/step_definitions/old_pages.rb:10:in `/^you are accessing User Page$/'
下面是课堂:
require 'fig_newton'
require 'page-object'
class CreateCustomerPage
include PageObject
include DataMagic
page_url "https://#{FigNewton.site_url}/admin/users/new"
text_field(:first_name, :id => 'user_first_name')
text_field(:last_name, :id => 'user_last_name')
text_field(:user_email, :id => 'user_email')
button(:create_customer, :name => 'commit')
button(:cancel, :name => 'button')
def customerIsCreated
raise 'User Not Created' unless browser.text.include?("#{FigNewton.customer_created.to_s.strip}")
return true
end
def customerIsNotCreated
raise 'User was Created' unless browser.text.include?("#{FigNewton.customer_no_created.to_s.strip}")
return true
end
def complete_user_creation (data = { })
populate_page_with data_for(:create_user, data)
create_customer
end
end
项目设置如下:
TestProj-|
|--Config
|--Feature
|--Regression
|-- *.features
|--step_definitions
|-- is_given_steps.rb
|--support
|-- env.rb
|--lib
|---pages
|--Common
|--IS
|--*.* (other files)
|-- CreateCustomerPage.rb
添加了env.rb
#env.rb
#ADDED THIS AS TEST
$: << File.dirname(__FILE__)+'/../../lib'
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '../../', 'lib'))
require 'rspec-expectations'
require 'page-object'
require 'selenium-webdriver'
require 'fig_newton'
require 'data_magic'
require 'require_all'
require 'time'
require 'date'
require 'yaml'
require 'fileutils'
require 'aws-sdk'
require_all 'lib'
$base_url = FigNewton.sys_url #used to parse a separate Url
World(PageObject::PageFactory)
#env.rb
#将此添加为测试
$:由于您手动需要文件夹,我猜您不需要包含env.rb
的文件夹
考虑到项目设置,我猜env.rb
在support
文件夹中。您需要在Cucumber命令-ie-r features/support
中包含对此的要求:
cucumber features/regression/createCloudUser.feature -r features/step_definitions/ -r lib/ -r features/support
由于您需要手动使用文件夹,我猜您不需要包含env.rb
的文件夹
考虑到项目设置,我猜env.rb
在support
文件夹中。您需要在Cucumber命令-ie-r features/support
中包含对此的要求:
cucumber features/regression/createCloudUser.feature -r features/step_definitions/ -r lib/ -r features/support
由于您需要手动使用文件夹,我猜您不需要包含env.rb
的文件夹
考虑到项目设置,我猜env.rb
在support
文件夹中。您需要在Cucumber命令-ie-r features/support
中包含对此的要求:
cucumber features/regression/createCloudUser.feature -r features/step_definitions/ -r lib/ -r features/support
由于您需要手动使用文件夹,我猜您不需要包含env.rb
的文件夹
考虑到项目设置,我猜env.rb
在support
文件夹中。您需要在Cucumber命令-ie-r features/support
中包含对此的要求:
cucumber features/regression/createCloudUser.feature -r features/step_definitions/ -r lib/ -r features/support
这个错误
#的未定义方法“访问#页面”(命名错误)
表示您尚未初始化访问页面所在的页面。您可以要求,或者如果您正在进行POM,您需要在步骤所在的位置执行类似的操作:
Given $/You are in Cloud Staging$/ do
@page = SomePage.new(@test_env) // initialize new object where method lives
@page.visit_page
end
这个错误
#的未定义方法“访问#页面”(命名错误)
表示您尚未初始化访问页面所在的页面。您可以要求,或者如果您正在进行POM,您需要在步骤所在的位置执行类似的操作:
Given $/You are in Cloud Staging$/ do
@page = SomePage.new(@test_env) // initialize new object where method lives
@page.visit_page
end
这个错误
#的未定义方法“访问#页面”(命名错误)
表示您尚未初始化访问页面所在的页面。您可以要求,或者如果您正在进行POM,您需要在步骤所在的位置执行类似的操作:
Given $/You are in Cloud Staging$/ do
@page = SomePage.new(@test_env) // initialize new object where method lives
@page.visit_page
end
这个错误
#的未定义方法“访问#页面”(命名错误)
表示您尚未初始化访问页面所在的页面。您可以要求,或者如果您正在进行POM,您需要在步骤所在的位置执行类似的操作:
Given $/You are in Cloud Staging$/ do
@page = SomePage.new(@test_env) // initialize new object where method lives
@page.visit_page
end
您正在将一个对象传递给访问页面
,而不是url
,即@bjhaidwhere是您的env.rb?你能贴出来吗?@snowe2010这对我来说是新的,谢谢!对象需要扩展而不包括PageObject-请参见下面的我的答案您正在将对象传递到访问页面
,而不是url
,即@bjhaidwhere is your env.rb?你能贴出来吗?@snowe2010这对我来说是新的,谢谢!对象需要扩展而不包括PageObject-请参见下面的我的答案您正在将对象传递到访问页面
,而不是url
,即@bjhaidwhere is your env.rb?你能贴出来吗?@snowe2010这对我来说是新的,谢谢!对象需要扩展而不包括PageObject-请参见下面的我的答案您正在将对象传递到访问页面
,而不是url
,即@bjhaidwhere is your env.rb?你能贴出来吗?@snowe2010这对我来说是新的,谢谢!该对象需要扩展而不包括PageObject-请参见下面的我的答案它是完美的!!现在很有魅力!!万分感谢!!太完美了!!现在很有魅力!!万分感谢!!太完美了!!现在很有魅力!!万分感谢!!太完美了!!现在很有魅力!!万分感谢!!