2016-08-12 50 views
0

我的目标是找到一个id和class两个元素。我这样做:在同一级别添加一个定位器到变量

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

这工作正常。但是,我要改进,引入一个变量:

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

我想用rightPanel和利用该变量的苍蝇在同级别添加另一个条件:

rightPanel.addConditionClassMustBeClosedAtThatElement.isPresent(); 

是它可行吗?

+0

似乎是你在谈论元素链接概念。如果我是对的,是的,我们可以按照你的预期做到,上面链接作品 –

+0

,但这看起来在第一个元素的孩子。我想寻找那个元素,而不是它的孩子。 –

+0

可以粘贴HTML代码的元素,你想工作? –

回答

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

+0

rightPanel.isPresent()。then(function(isPresent)rightPanel.getAttribute(“class”)。然后(函数(类)){console.log(isPresent && classes.indexOf(“closed”)> = 0) ; }); }); –

相关问题