3

別の要素の下にある要素を見つけようとしましたが、分度器が正しい値を取得できないようです。

ここに詳細な説明があります。

私は次の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」を持っているのに。私はこれを知っています:

  1. 私は自分の目でそれを見ます:)
  2. 予期される直前にデバッグ モードで停止し、HTML を調べて、そのスパンのテキストが実際に「1」であることを確認します。
  3. 次に、これを試します:

予想の前に 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 です。

よろしくお願いします、ダニエル

4

1 に答える 1