一尘不染

通过CSS使用元素检查量角器中是否存在元素

angularjs

在量角器端到端测试中,我想使用我的代码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())不是这里使用的方法?


阅读 219

收藏
2020-07-04

共1个答案

一尘不染

您可以通过检查是否element存在isPresent
这是isPresent函数的量角器文档

因此,您的代码将类似于:

var myElement = element(by.css('.elementClass'));
expect(myElement.isPresent()).toBeFalsy();
2020-07-04