在同一级别添加一个定位器到变量

时间:2016-08-12 14:56:52

标签: html css selenium protractor automated-tests

我的目标是找到一个id和class的元素。我是这样做的:

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

工作正常。但我想改进并引入一个变量:

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

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

   rightPanel.addConditionClassMustBeClosedAtThatElement.isPresent();

可行吗?

1 个答案:

答案 0 :(得分:1)

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