2017-01-31 22 views
7

私はページオブジェクトパターンをJava(https://code.google.com/p/selenium/wiki/PageObjects)で使用して、さまざまなテスト自動化フレームワークを構築しました。私が見つけた大きなメリットのJavaScriptは厳密なページオブジェクトパターンと互換性がありますか?

2つです:

1)あなたはページのインスタンスを持っているときに、例えば、ホームページを入力して(方法が利用可能であるか見ることができます私にあなたができるすべてのアクション/メソッドを表示します。

2)ナビゲーションメソッド(例:goToHomepage())は後続ページのインスタンス(ホームページなど)を返すため、コードを記述してどこに移動するかを見るだけでテストをナビゲートできます。

WelcomePage welcomePage = loginPage.loginWithValidUser(validUser); 
PaymentsPage paymentsPage = welcomePage.goToPaymentsPage(); 

(この場合、またはページ)オブジェクトの種類がIDEで知られているので、これらの利点は、Javaで完璧に動作。

しかし、JavaScript(動的に型指定された言語)では、オブジェクト型は固定されておらず、しばしばIDEに対してあいまいです。したがって、JavaScriptを使用して構築されたオートメーションスイート(たとえば、Cucumberを使用して)でこれらの利点を実現する方法はわかりません。

これらの利点を得るために、ページオブジェクトパターンでJavaScriptをどのように使用するのか誰にでも教えてください。あなたはJetBrainsの製品を使用する場合は

https://en.wikipedia.org/wiki/TypeScript

+1

私はこのパターンに慣れていませんよしかし、このサイト自体には広すぎるような疑問があります.JS IDEのなかには、オブジェクトにどのようなプロパティを持たせるべきかを知ることができます。また、余分なコンパイルのステップが気にならない場合は、Typescriptをオプションにすることもできます。 – Gerrit0

+0

あなたはすべての言語についてこの質問をしていますか? – Tom

+0

Nah ... javascriptとruby :-) –

答えて

2

私はこのパターンについてあまりよくありません。しかし、私はあなたに役立つかもしれないいくつかの詳細を与えるでしょう。 http://www.guru99.com/page-object-model-pom-page-factory-in-selenium-ultimate-guide.html

http://www.assertselenium.com/automation-design-practices/page-object-pattern/

これを達成するための素晴らしい方法は、(JavaScriptの静的に型付けされたバージョンである)TypeScriptを使用するようです:

https://en.wikipedia.org/wiki/TypeScript

3

はGerrit0の上でコメントし、さらにそれを調査することから、これを達成するための素晴らしい方法は、(JavaScriptを静的に型付けされたバージョンである)活字体を使用することであると思われますIntelliJ IDEAのようにコード補完と適切なナビゲーションを行います。 JavaScriptの世界のページオブジェクトでも、既知のパターンです。 AngularJsはそれ自身のe2eテストフレームワーク(http://www.protractortest.org/#/page-objects)も提供しています。個人的に私はページオブジェクトにIIFEを使用し、残りはIntelliJが行います。それがあなたのニーズに合っていないなら、あなたはまだtypescriptを選び、それをjavascriptに移すことができます。

+0

Typescriptはjavascriptにコンパイルする必要があり、javascriptは緩く型付けされています。 Typescriptはコンパイル時のフィードバックを提供しますが、実行時の保証はありません。 – shadymoses

0

+0

IntelliJはJava用です。私はジェットブレインズIDEAをjavascript(WebStormと呼ばれています)に使用しましたが、これはうまくいきませんでした。私はページオブジェクトタイプが分からないので恐れています。 –

関連する問題