2017-06-06 6 views
1

element.all配列から返されるランダムな値または少数の値を取り除くか、削除する方法はありますか?アサートのためにいくつかの配列値をスクラップします(分度器)

私が自動化しようとしているのは、配列のリストから返されたすべての行に 'HTML'という単語が存在することを確認することです。

私はダミーのテストウェブサイトとして私のシナリオを試すためにw3Schoolsを使用しましたが、以下はアサーションのために失敗したコードです。

describe('Searching for word HTML', function() { 
    var array=[]; 
    var counter=0; 
    it('Beginning of the test', function() { 

    browser.ignoreSynchronization = true; 
    browser.get('https://www.w3schools.com/html/default.asp'); 

    browser.sleep(5000).then(function(){}); 

    var lines = element.all(by.css('#leftmenuinnerinner>a')); 
    lines.count().then(function(counting){ 
     console.log("There are total "+counting+" links"); 
     counter=counter+counting; 
     return counting; 
    }) 
    lines.getText().then(function(text){ 

     console.log("Values:::: "+text); 
     for(var k=0;k<text.length;k++){ 
     expect(text[k]).toContain('HTML'); 
     } 
    }) 
    }) 
}) 

のであり、私は厳密な値のリスト全体を取得する必要があり、私は私が唯一の76個の値のループを通ってのxpath値&反復処理を使用することができます知っているが、私はCSSセレクタ&のアプローチを経由しようとしています私はアトリビュートが通過するように返された配列から私のコードを介して動的に 'キーボードショートカット'を&動的にトリムまたは値を 'HTTPメッセージ'、 'HTTPメソッド'、 'PXからEMコンバータ'を取り除くことができますか?

答えて

2

あなたが唯一の希望のテキストを含む要素を維持するためにfilterメソッドを使用することができます。 - http://www.protractortest.org/#/api?view=ElementArrayFinder.prototype.filter

lines.filter(function(elem, index) { 
    return elem.getText().then(function(text) { 
    return text.includes('HTML'); 
    }); 
}) 

それとも、希望の要素を取得するためにcssContainingTextロケータを使用することができます。 - http://www.protractortest.org/#/api?view=ProtractorBy.prototype.cssContainingText

var lines = element.all(by.cssContainingText('#leftmenuinnerinner>a','HTML')); 
関連する問題