2016-09-01 3 views
0

私は複数の列と複数の行を持つテーブルを持っている、行はリピータにあり、各行は同じクラスを持っています。基本的に私は分度器の検索機能テストを自動化しており、検索された値が与えられた結果に含まれているかどうかを確認したい。だから、基本的に私は各クラスやリピーターの内部に行き、値を調べる必要がありますか?値が存在する場合、またはテストに合格した要素のいずれかに含まれている場合は、テストに失敗します。分度器のクラスまたはリピーターによる値を検索しますか?

+0

以下のようなアサーション何かを持っている必要があり

<li class="file" ng-repeat="result in results" ng-class="{blahblah}"> <li class="file" ng-repeat="result in results" ng-class="{blahblah}"> <li class="file" ng-repeat="result in results" ng-class="{blahblah}"> 

以下のような結果が要素のリストに表示されます/助けが必要ですか?あなたはいくつかのコードを示す例を挙げることができますか?はい、[リピーター](http://www.protractort.org/#/api?view=ProtractorBy.prototype.repeater)または[class/css](http://www.protractortest.org/#)で検索できます/api?view=webdriver.By.css) – Gunderson

+0

これは非常に曖昧な質問です。ソリューションをコーディングしようとした後に、特定の問題に戻ることをお勧めします。 –

+0

@Gunderson投稿を編集しました – Gudzo

答えて

0

検索文字列が「SEARCHKEY」であると仮定すると、あなたのテストケースは、あなたが正確に何を求めている

 var xpathExp = "//li[contains(.,'" + SearchKey + "')]" 
     expect(element(by.xpath(xpathExp).isDisplayed()).to.eventually.be.true; 
1

あなたが選択するためにどのようなロケータ求めている場合 - 「リピーターで」または「クラスによって」、一般的に言えば、選択はどのようにはっきりとリピータとクラスの読みに依存するであろうあなたは利用可能です。あなたはitem in itemsリピーターとproductクラスを持っている場合item in itemsがリピータの一般的すぎると(現時点でまたは将来的にページ上の別個のものではないかもしれないので、productクラスを使用することが好ましいであろう。例えば

、これはいつかは驚きになるかもしれませんし、デバッグ中に脱毛につながるかもしれません)。

または反対たとえば、あなたがproduct in productsリピーターとcol-md-1クラスを持っている場合col-md-1クラスはUI-とレイアウト - 指向のクラスであり、任意の「データ」を含むか持っていないので、その後、「リピータによる」ロケータが好まれます特定の情報。将来変更される可能性が高くなります。


もう一つのポイントは、「リピータによる」ロケータは、あなたのテストをさらにAngularJSに縛らなるだろうということですが、「クラス別」アプローチは、もう少し汎用的であり、アプリケーションが何であるかのとらわれません上に構築されます。

関連する問題