web-dev-qa-db-ja.com

cssによる要素を使用して、要素が分度器に存在するかどうかを確認します

分度器のエンドツーエンドテストでは、element(by.css(...))、私のコードを使用して要素が存在するかどうかを確認したい:

var myElement = element(by.css('.elementClass'));
expect(myElement).toBeUndefined;

このテストは失敗します。

    Expected { locator_ : { using : 'css selector', value : 'div[ng-switch-
    when="resultNav"]' }, parentElementFinder_ : null, opt_actionResult_ :
    undefined, opt_index_ : undefined, click : Function, sendKeys : Function, 
getTagName : Function, getCssValue : Function, getAttribute : Function, getText
 : Function, getSize : Function, getLocation : Function, isEnabled : Function, 
isSelected : Function, submit : Function, clear : Function, isDisplayed : 
Function, getOuterHtml : Function, getInnerHtml : Function, toWireValue : 
Function } to be undefined.

その後、私は約束を使用しようとしました:

element(by.css('.elementClass')).then( functtion(data) {
    expect(data.getText()).toBeUndefined();
});

これによりエラーが発生します。

エラー:ロケーターBy.CssSelector(...)を使用して要素が見つかりません

はい、要素が見つからないことはわかっていますが、element(by.css(...))を使用して作業テストを作成するにはどうすればよいですか?

誰もこれを達成する方法を知っていますか?またはelement(by.css())はここで使用する方法ではありませんか?

42
Michiel

elementを使用して、isPresentが存在するかどうかをテストできます。 ここに分度器ドキュメントがありますisPresent関数用。

したがって、コードは次のようになります。

var myElement = element(by.css('.elementClass'));
expect(myElement.isPresent()).toBeFalsy();
89
Davin Tryon

要素が存在しないかどうかをテストする必要があります。

expect(element(by.css('.elementClass')).isPresent()).toBe(false);
23
JB Nizet