2013-08-16 4 views
5

私たちのチームはAngularJSでWebアプリケーションを開発しています。テストのために、ユニットテストと角度-e2eテストのためにジャスミンを使用します。それはうまく動作します。しかし、私たちのQAチームは、今日、Webアプリケーションをテストするためにセレンを使用しようとしましたが、ほとんどのDOM要素のIDを定義していないため、問題に直面していると私たちに近づいてきました。私たちはこれについて少し研究しましたが、運はありません。セレンの使用のためにすべてのIDを明示的に追加しなくても、セレンテストを行う良い方法を提案する人もいますか?ありがとう!要素IDのないセレンでAngularjsをテストする

更新

我々はいくつかの会合を持ち、テストで堅牢性のための要素にidを挿入することになりました。お返事ありがとうございます:)

+1

これは可能です。はい、下記の回答をご覧ください。しかし、 'xpath'や' css-selectors'を使ってビルドされたテストは、要素に対して適切な一意のIDでビルドされたものよりも壊れやすいことに注意してください。 –

+0

メモありがとう!この場合、すべての要素に固有のIDを導入する方が良いでしょうか?現在、私たちのチームには2つの考えがあります.1つは、支援ツールのためだけに多くのIDを導入してアプリを変更するべきではないということです。 2つのIDを導入することは難しいことでも破壊的でもない場合、それが問題を解決すればそれはなぜですか。どちらの考えも私たちには妥当と聞こえますが、これはもっと良い方法でしょうか? – PSWai

答えて

5

Selenium WebDriverを使用している場合は、ページ上の要素を見つける方法はたくさんあります。は、柔軟性が向上する限り、おそらくより優れたアプローチの1つですが、WebDriverでは、クラス名、タグ名、名前、リンクテキスト、CSSを使用することもできます。我々は今、私たちの仕事でも同じような状況が発生した

Selenium WebDriver - Locate UI Elements

+0

それを指摘してくれてありがとう!個人的に私はSelenium WebDriverの経験がないので、これについてはよくわからないので、QAチームにもう一度アプローチします:) – PSWai

1

  1. 試してみて、異なった要素を探します。この説明で述べたように は、我々はこの問題を克服することが可能に二つのアプローチを比較しました。
  2. Angular開発では不要な場合でも、必要に応じて新しい属性を導入します。

私たちは(2)に行き、必要に応じてIDを追加することに決めました。 堅牢性をはるかに上回ってテストし、オーバーヘッドはまったく重要ではありません。

正確に何をしましたか?関連する要素には、 "data-hook"という名前の属性が、彼を識別する適切な値で追加されました。よく働く。

関連する問題