現在、分度器を使用してフレームワークを作成中です。私は、分度器APIによって与えられたcssContainingText
ロケータを使用しようとしていました。しかし、ロケータはinvalidElement
例外を与えられず、私にとっては怪しいようでした。分裂器のcssContainingTextロケータ機能の理解
ページのHTMLは、私が変なふうにInvalidLocator
例外を与え、次のlocator-
element(by.cssContainingText('.field-name','someText'));
を使用してテキストsomeText
を、使用しようとしていたこの
<tbody>
<tr class="row2">
<td class="action-checkbox">...</td>
<th class="field-name">
<a href="some_link">someText</a>
</th>
<td class="field-slug">sometext</td>
</tr>
<tr class="row3">
<td class="action-checkbox">...</td>
<th class="field-name">
<a href="some_link">someOtherText</a>
</th>
<td class="field-slug">someothertext</td>
</tr>
<tr class="row4">...</tr>
<td class="action-checkbox">...</td>
<th class="field-name">
<a href="some_link">someThirdText</a>
</th>
<td class="field-slug">somethirdtext</td>
</tr>
のように見えます。次のロケータelement(by.cssContainingText('a','someText'))
を使用すると、コードは正常に動作します。
説明文からわかるように、hereを与えられた投射器の実装では、cssContainingText
は、CSSセレクタを使用してすべての要素を探し出し、必要なテキストと突き合わせます。
CSS Selectorのクラス名を.field-name
にして、目的の文字列に一致させても問題ありません。しかし、これは失敗し、私は理解できません。これに関する入力は参考になります。
それはすべてのブラウザで失敗していますか?または特定のブラウザがありますか?私がprotractorからソースコードを使用し、このページに 'findByCssContainingText( '。post-taglist'、 'javascript')の検索を挿入すると、それはうまく動作しないので、あなたにとっては不思議です。 – wswebcreation
はい、すべて失敗しますブラウザ。私はChrome Devを使って60以上のFFをビルドしようとしました。そして、はい、私はロケータが動作することを期待していたので、あまりにも、wierdedです – demouser123
あなたのデベロッパーコンソールでこれをChromeで試してみてください。 'window.document.querySelectorAll( '。フィールド名')[0] .textContent'または' window.document.querySelectorAll( '。フィールド名')[0] .innerText'です。これを試してみると、これを再現することができないので、これは変です:https://angular.github.io/protractor-cookbook/ng1/calculator/ '' .ng-scope''または '' .ng-バインディング – cnishina