2016-08-09 7 views
0

は、pagefactory例外ArgumentError:私は、ページファクトリパターンを使用しています間違った引数の数(1 2)

  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. は 訪問(ホームページ) 終了

  4. シナリオを実行します。ユーザーが作成する必要があります新しいアカウント は、私は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 '私は店舗のホームページにあると考えています – Ajay

答えて

0

問題は、ページオブジェクトに対してinitializeメソッドを再定義したことです。

ときinclude PageObjectinitialize method is already added:デフォルトの方法は、2つのまでの引数を受け入れることができる

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 

注意してください。 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

Justin Ko、ありがとうございます。 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

ブラウザは開かれていますが、検索バーにはURLが表示されていません。検索バーには「データ:」が表示されています。私はなぜそれがデータを表示しているのか分かりません: – Ajay

関連する問題