別の要素の下にある要素を見つけようとしましたが、分度器が正しい値を取得できないようです。
ここに詳細な説明があります。
私は次のHTMLを持っています:
<div ng-repeat="stageRow in stageModel" debugId="stage-row">
<div>
<span debugId="stage-name-text">{{ stageRow.name }}</span>
</div>
<div>
<span debugId="stage-count-text">{{ stageRow.count }}</span>
</div>
</div>
次に、次の分度器コードを使用して行を見つけます。
var allStages = element.all(by.css('[debugId="stage-row"]'));
var stage01 = allStages.get(0);
次に、ロケーターをチェーンして特定のセルを見つけようとします。
var count01 = stage01.$('[debugId="stage-count-text"]');
それから私は期待をします:
expect(count01.getText()).to.eventually.equal('1')
そして、ここに私が得るものがあります:
+ expected - actual
+"1"
-""
ステージのカウントとして明らかに「1」を持っているのに。私はこれを知っています:
- 私は自分の目でそれを見ます:)
- 予期される直前にデバッグ モードで停止し、HTML を調べて、そのスパンのテキストが実際に「1」であることを確認します。
- 次に、これを試します:
予想の前に HTML のプリントアウトを置きます。
stage01.getOuterHtml().then(function(result) {
console.log(result);
});
そして、予想される HTML が表示されます。
<div ng-repeat="stageRow in stagingModel" class="ng-scope" debugid="stage-row">
<div>
<span debugid="stage-name-text" class="ng-binding">nuziba</span>
</div>
<div>
<span debugid="stage-count-text" class="ng-binding">1</span>
</div>
</div>
その直後、私は手動でこれを試します:
stage01.element(by.css('[debugId="stage-count-text"]')).getText().then(function(count) {
console.log(count);
});
そして、印刷物に「」が表示されます...
次に、by.css の代わりに by.repeater を使用して、別の方法を使用して要素を見つけようとしました。同じ結果が得られました。
そこで何が起こるの?明らかに、HTML には正しいマークアップが含まれています。分度器が正しく抽出できないのはなぜですか?
記録のために、私は分度器バージョン 1.4.0 を使用しており、ランナーは Jasmine ではなく mocha 1.18.2 です。
よろしくお願いします、ダニエル