分度器のエンドツーエンドテストでは、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())
はここで使用する方法ではありませんか?
element
を使用して、isPresent
が存在するかどうかをテストできます。 ここに分度器ドキュメントがありますisPresent
関数用。
したがって、コードは次のようになります。
var myElement = element(by.css('.elementClass'));
expect(myElement.isPresent()).toBeFalsy();
要素が存在しないかどうかをテストする必要があります。
expect(element(by.css('.elementClass')).isPresent()).toBe(false);