1

ダイナミックで、あるページから別のページに取得された値を検証する必要があります。その要素にもスペースがあります。 以下は私のコーディングです。jasmine expect(check).toContain(value)を使用してスペースで動的値を確認する方法は?

ページ - > name

ページ-2 - - 他のページに表示された>と同じ値1

var PerAge = element(by.css("h1 > span.ng-binding")).getText(); 

この要素は、このように、それにスペースがあります。この要素にはスペースがありません。

var HumAge = element(by.repeater("slide in ctrl.slides track by $index")).getText(); 

ここでは、ページ2の値が同じかどうかを検証したいと思います。リピーターには他の値があるので、値を検証するために.toContainを使用しています。 ここでの問題は、PerAgeにスペースがあることです。

このスタックオーバーフローに関する質問をチェックしましたが、うまくいかなかった。 Expected '> ' to equal '> ' in jasmine

expect(PerAge).toContain(HumAge); 
'シェーン' を含むように 'シェーン' 予想される次のエラー

を返す

ITSは。

私はtrimを試しましたが、トリムを認識しません。 .ToEqualは、他のものがたくさんあるので、以下のように使用することはできません。

expect(PerAge).toEqual('\xA0HumAge') 

答えて

1

私が正しくあなたを理解していれば、あなたはこのように1ページの値を取得する:

var PerAge = element(by.css("h1 > span.ng-binding")).getText(); 

とそれを比較するために、2ページのそれを使用する:

var HumAge = element(by.repeater("slide in ctrl.slides track by $index")).getText() 
expect(HumAge).toEqual(PerAge); 

これが原因失敗スペースに。

.trim()を使用できない理由は、.getText()が約束を返すためです。 .trim()を使用するには、まずその前提を解決する必要があります。

あなたができることは、たとえばこれです。 Babelのようなトランスパイラーを使用するか、Async/Awaitの両方をサポートするTypeScriptを使用すると、コードの例が見つかります。

var PerAge, HumAge; 
 

 
element(by.css("h1 > span.ng-binding")).getText() 
 
    .then(function(text) { 
 
    PerAge = text.trim(); 
 
    }); 
 

 
// Go to page 2 
 
element(by.repeater("slide in ctrl.slides track by $index")).getText() 
 
    .then(function(text) { 
 
    HumAge = text.trim(); 
 
    }); 
 

 
expect(HumAge).toEqual(PerAge); 
 

 

 
// If you can use async await because you transpile with Babel or use typescript you can do this to tidy the code 
 
// $ is the Protractor shorthand for the `css`-locator 
 
const PerAge = (await $('h1 > span.ng-binding').getText()).trim(); 
 
const HumAge = (await $('[ng-repeater="slide in ctrl.slides track by $index"]').getText()).trim(); 
 

 
expect(HumAge).toEqual(PerAge);

+0

感謝。それはとてもうまくいった。 – James

関連する問題