2016-06-30 11 views
0

私はWebdriverIOを使用してe2eテストスイートを構築しています。ページオブジェクト間の継承を作成することに専念しています。WebdriverIO Pageオブジェクト継承

分度器では、パラメータをコンテキストに渡して、そのコンテキスト内の要素を検索することができます。例えば、

var pageObject = context.element(by.css('.some-class'));

例えば、ここに

は、ヘッダーはここにホームページ

var HomePage = require('./home.page'); 
module.exports = Object.create(HomePage, { 
    headerModule: {get: function() {return browser.element('.header');} 
}); 

アンにあるフッターはホームページ上でも、両方のモジュールで

var HomePage = require('./home.page'); 
module.exports = Object.create(HomePage, { 
    footerModule: {get: function() {return browser.element('.footer');} 
}); 

、Iであります同じボタンがあり、私はただ1つのページオブジェクトを作成したい両方の場合に使用されるボタンです。どのページを継承する必要がありますか?私はパラメータ、親ページオブジェクトを渡す方法を知らない。

+2

本当にページオブジェクト間にコンテキストを渡す必要はありません。メインスクリプトは、異なるページオブジェクトをインスタンス化して消費します。コンテキストは、ページオブジェクト自体に含まれている必要があります。ページオブジェクト間でコンテキストを渡すときの詳細な例を挙げることはできますか? – JeffC

+0

もう一度見ていただけますか?私は質問を更新しました。 –

答えて

1

あなたがしようとしていることを理解するのに十分な情報がありますか分かりませんが、ページオブジェクトの仕組みについて混乱するかもしれません。あなたが与えた例から、ホームページのヘッダとフッタを取得したいとします。ページ・オブジェクト・モデルでは、ホーム・ページ・クラス(ページ・オブジェクト)を作成し、そのクラス内でヘッダーをフェッチするメソッドと、フッターをフェッチするメソッドの2つを宣言します。どちらのメソッドも同じページオブジェクトの一部です。

スクリプトでは、ホームページクラス(ページオブジェクト)をインスタンス化してから、フッターやヘッダーをフェッチするメソッドを呼び出します。この時点で、コンテキストを渡す必要はありません。ヘッダー/フッターをフェッチするためのすべてのコードは、ホームページクラス内のメソッド内に含まれています。

私は分度器を知らないので、いくつかのサンプルコードを書くことはできませんが、分度器を使ってオブジェクトをページングするかなり良いイントロのように見えるこのページを見つけました。私はあなたがそれを読んで、おそらく検索用語や同様のものとして '分度器セレンのページオブジェクト'を使っていくつかのガイドを検索することをお勧めします。彼らが良いかもしれないように見えるいくつかの結果がそこにあります。分度器でページオブジェクトの記事をたくさん見つけることができない場合でも、他の言語の記事を読むことはコンセプトを理解するのに役立ちます。そうすれば、あなたが選択した言語で自分自身を実装できます。

https://www.thoughtworks.com/insights/blog/using-page-objects-overcome-protractors-shortcomings

関連する問題