2017-07-20 20 views
0

私の分度器テストの各手順の前に余分なコードを追加します。そこで、私は小さなプラグインを作成し、 "waitForPromise"のようなフックの1つを使用することにしました。分度器プラグインで要素を検索

https://github.com/angular/protractor/blob/5.1.2/lib/plugins.ts#L163

私は、任意の分度器またはブラウザのインス​​タンスを取得するために問題を抱えています。コード例を示します。

var protractor = require('protractor'); 
var EC = protractor.ExpectedConditions; 

module.exports = { 
    waitForPromise: function(){ 
     //this add 3 second after each promise(work fine) 
     browser.sleep(3000); 

     //this doesn't work. looks like it goes to endless promise execution. 
     return browser.wait(function() { 
      return $('body').getAttribute('class').then(function (attr) { 
       console.log(attr); 
      }); 
     },3000); 
    } 
}; 

UPDATE: 私は研究によると、私の例を更新しました。

更新:このコードが機能しない理由が分かっている人は、躊躇しないでください。

waitForPromise: function(){ 
    return $('body').isPresent().then(function (val) { 
     console.log('present',val); 
    }); 
} 

"waitForPromise" の溶液を作業に興味がある人ならば、あなたはthisを確認することができます。

あなたは、次のいずれかの方法により、分度器でロケータを使用することができます

答えて

0

element(by.css('app-title')); 

以上の短い手がある:あなたが使用している

$('app-title'); 

両方ので、私はそれが問題だと思います。分度器のロケータを使用している公式ページを参照してください - http://www.protractortest.org/#/locators

+0

私は非常に多くの方法で要素を選択しようとしました。どちらの方法も機能しません。テストは何とか約束を解決できないように、そのステップでハングアップします。私はスレッドを更新しました。 – John51

+0

Node.jsのどのバージョンを使用していますか? –

+0

ノードのバージョン:v6.11.0 – John51

関連する問題