我的目标是找到同时具有id和class的元素。我这样做是这样的:

    return element(by.css('#right.closed')).isPresent();


很好。但我想改进并引入以下变量:

  public static rightPanel = element(by.css('#right'));


我想使用rightPanel并即时使用该变量在同一级别添加另一个条件:

   rightPanel.addConditionClassMustBeClosedAtThatElement.isPresent();


可行吗?

最佳答案

addConditionClassMustBeClosedAtThatElement可以通过getAttribute()实现:

rightPanel.isPresent().then(function (isPresent) {
    rightPanel.getAttribute("class").then(function (classes) {
        console.log(isPresent && classes.indexOf("closed") >= 0);
    });
});


或者,如果要通过expect()增加期望值:

expect(rightPanel.isPresent()).toBe(true);
expect(rightPanel).toHaveClass("closed");


其中toHaveClass is a custom jasmine matcher

08-17 09:06