2016-08-09 66 views
0

我使用頁面工廠模式,展示我的參數錯誤在那裏放置pagefactory引發ArgumentError:錯誤的參數數目(2 1)

  1. 這裏是我的班級主頁: -

    require 'page-object/page_factory' 
    class Homepage 
    include PageObject 
    include Configuration 
    
    
    def initialize(browser) 
        @browser = browser 
        end 
    
        def open 
        goto("url") 
        end 
    
        def sign_in 
    @browser.element(css: 'div.links-static ul li.account div#login_user_data a.account').click 
    end 
    
        def create_account 
    @browser.element(css: 'div.ml_function.ml_function_arrowtoptoleft.padding_top_twenty.height_fifty input.ml_function_button_createaccountRegister').click 
        end 
    end 
    
  2. 鑑於(/ ^我在shopclues網頁$ /)做訪問 (首頁) 結束

  3. 方案:用戶需要創建一個新的帳戶 鑑於我對shopclues主頁---->這是顯示錯誤 當我 點擊符號和我填寫的用戶信息 我單擊創建帳戶 然後,我應該看到用戶詳細信息

+0

可否請你更新你的錯誤你的問題?錯誤消息和堆棧跟蹤通常包含很多有關最新錯誤的有用信息。 最重要的是,它應該告訴你,如果錯誤來自你的代碼,或從一個依賴項(例如頁面對象的東西)或你如何使用依賴項。 – trueunlessfalse

+0

ArgumentError:錯誤的參數數量(2代表1) ./features/lib/pages/Homepage.rb:7:in'initialize' ./features/step_definitions/Homepage_steps.rb:2:in'/ ^我是在shopclues主頁$ /' ./features/Homepage.feature:9:in'鑑於我在shopclues主頁 – Ajay

回答

0

問題是您已重新定義頁面對象的initialize方法。

當你include PageObject,一個initialize method is already added

def initialize(root, visit=false) 
    initialize_accessors if respond_to?(:initialize_accessors) 
    initialize_browser(root) 
    goto if visit && respond_to?(:goto) 
    initialize_page if respond_to?(:initialize_page) 
end 

注意,默認的方法可以接受多達2個參數。使用visit方法時,您的頁面對象使用2個參數進行初始化。鑑於您已將initialize方法重新定義爲只接受1個參數,則會發生異常。

除非你有這樣一個特殊的原因,你應該刪除自定義initialize - 即類應該僅僅是:

class Homepage 
    include PageObject 
    include Configuration 

    def open 
    goto("url") 
    end 

    def sign_in 
    @browser.element(css: 'div.links-static ul li.account div#login_user_data a.account').click 
    end 

    def create_account 
    @browser.element(css: 'div.ml_function.ml_function_arrowtoptoleft.padding_top_twenty.height_fifty input.ml_function_button_createaccountRegister').click 
    end 
end 
+0

謝謝賈斯汀高,但現在我得到這個錯誤。 Watir :: Exception :: UnknownObjectException:無法定位元素,使用{:css =>「div.links-static ul li.account div#login_user_data a.account」} – Ajay

+0

這意味着該元素不存在。出現這種情況的原因有很多。如果沒有訪問您正在使用的頁面,我無法準確告訴您發生異常的原因。我可以建議的是,你會看到可能的原因列表 - 我的博客列表(https://jkotests.wordpress.com/unable-to-locate-element/)。 –

+0

瀏覽器已打開,但網址未顯示在搜索欄中,在搜索欄中顯示「data:」。我不知道它爲什麼顯示數據: – Ajay

相關問題