2016-04-11 15 views
0

javacriptを使用してセレンウェブドライバスクリプトを開発できますか?はいの場合は、JavaやC#または他の言語を使用する代わりに、javascriptを使用する利点は何ですか?どのようなシナリオでは、他の言語よりもJavascriptを考慮する必要がありますか?javascriptを使用してSelenium webdriverスクリプトを作成する

ありがとうございます。

答えて

1

はい、Nodejs分度器JasimeフレームワークをWebDriverで使用できます。 JSのセレンバインディング(webdriver.io、ナイトウォッチ、分度器)の上に書かれた多数のJavascriptフレームワークがあります

Webdriver java script binding

Angularjs Jasmine

2

:ここ

は、いくつかのリンクです。

は、C#やJava

  • 少ない定型
  • 兵卒を超えるJSの利点やビルドオートマトン>達人、MSBuildのかさえのGradleのために飲み込む
  • フロントエンドのフレームワーク(分度器)との
  • の統合の強化
  • JSは一般にすべてのWebプロジェクトで使用されるため、すべての開発者が理解できる普遍的な言語として機能します。
  • 依存関係管理のためのNPMとその中にある膨大な数のライブラリが作業負荷を大幅に削減する可能性があります。

欠点

  • Javaバインディングは、デバッグの問題に利用できるより多くのドキュメント/リソースを持っています。
  • 速度(JavaでAjaxPageFactoryを使用すると、分度器よりも高速で、JavaScriptで同等の機能を見つけることができません)
  • JavaまたはC#からのプロビジョニングが複雑になることがあります。
  • Microsoft Edgeは現在サポートされていません。

Angularをフロントエンドに重視して使用する限り、分度器は角度の機能テスト用に特別に設計されたツールで、C#またはJava上で使用する必要があります。分度器は、React.jsなどのフレームワークで使用できますが、そのために設計されていないため、多くのwaitForElementタイプコードを含める必要があります。

分度器について私が本当に知っていることは、より包括的なマルチブラウザテスト用の設定です。これをJavaやC#で設定するには多くの設定が必要ですが、分度器ではconf.jsファイルを2回変更するだけで簡単に行うことができます。私は自分自身が非常にシンプルなテストを設定し、解体するために多くのつぶやきプラグインを使用しています。

Babel.jsを使用することをお勧めします。クラスを含めることでJavaまたはC#からの移行を簡単にするes2015 JS構文を利用できます。私は個人的にはページオブジェクトを書くためにはるかにクリーンです。

ほとんどのアクションが約束を返すので、JavaとC#のためのSelenium for C#でのシンプルなアクションはJavascriptでもっと複雑です。

Javaバージョン

int previousNumberOfItems = driver.findElements(By.className(".item")).size(); 
driver.findElements(By.cssSelector(".addItemButton")).click(); 
int currentNumberOfItems = driver.findElements(By.className(".item")).size(); 
assert.AssertTrue(currentNumberOfItems .contentEquals(previousNumberOfItems +1)); 

分度器(JS)バージョン

element.all(by.className(".item")).count().then(function(number){ 
    element(by.css(".addItemButton")).click(); 
    expect(element.all(by.className(".item")).count()).toBe(number+1); 
}); 

私は本当にナイトウォッチのために話すか、彼らはテストのためのより良いかもしれwebdriver.ioができない非Javascriptを使った角型アプリ。

+0

私は新しいJSですが、以前はJavaでセレンに取り組んでいました。 JSの範囲がセレンとオートメーションに使用されるエディタに精通していなければならないことを教えてください。 – Tanmay

+0

基本的なjavascriptのチュートリアルでは、JavaとSeleniumをすでに知っている場合は特に高速化が必要です。分度器のページオブジェクトを構造化する方法はたくさんありますが、コンストラクタパターンが最も簡単だと思います。 http://www.samselikoff.com/blog/some-Javascript-constructor-patterns/。それでは、モジュールと約束について少し学ぶのに役立ちますが、分度器には最小限のものしか必要ありません。最後に、NPMやGrunt/Gulpをよく知っていると、本当に役に立ちます。 – sonhu

+0

ありがとうございます。 Selenium webdriverとwebdriverJSは同じAPIを持っていますか?私はネット豆を使っていますが、EclipseがWebdriver APIに与える知見はありません。 – Tanmay

関連する問題