2016-10-07 17 views
3

のために私は、モデルベースのフォームを使用しています。私のスペックで、次のような何かをするのような私が希望分度器ロケータはformControlName

element(by.formControlName('username')).sendKeys('[email protected]'); 

これは明らかに動作しませんので、フォームコントロールによって探し出す方法があるか、私は私が入れて持っているという事実に辞任しています入力フィールドのクラスまたはID?あなたは、多くの場合、これを実行する必要がある場合、あなたは常に再利用可能なcustom locatorを定義することができ

element(by.css("input[formControlName=username]")).sendKeys('[email protected]'); 

注:

by.addLocator('formControlName', function(value, opt_parentElement, opt_rootSelector) { 
    var using = opt_parentElement || document; 

    return using.querySelectorAll('[formControlName="' + value +'"]'); 
}); 

答えて

6

あなたはかなり単純CSSセレクタを書くことができます用法:

element(by.formControlName('username')).sendKeys('[email protected]'); 
+0

by.css作品、ありがとうございました。アプリケーションでグローバルに使用したい場合、addLocatorはどこに置くのですか? –

+0

@ MarkKenny偉大な、あなたはあなたの分度器の設定で 'onPrepare()'関数に 'by.addLocator'を置くべきです.. – alecxe

+0

私に戻ってくれてありがとう。たぶん私は分度器にはあまりにも新しいですが、 'by.addLocator'コードスニペットをonPrepare関数にコピー&ペーストするだけで、すべてがハングしてしまいます。おそらくどこかで設定の問題。私がそれを見つけたら投稿する –