Javascript 当类更改时,特定id的量角器中的Browser.wait()

Javascript 当类更改时,特定id的量角器中的Browser.wait(),javascript,angularjs,protractor,Javascript,Angularjs,Protractor,需要为特定元素实现browser.wait()。需要一些帮助来完成这件事 场景->单击过滤器div,将显示隐藏的div。需要等待,直到它是可见的 单击前- <div id = "collapseGenericFilter" class="pannel-collapse collapse"> 是这样吗? 如果我找到dom元素,首先是ID,然后是类,比如元素('GenericFilter')。然后是.css('panel-collapse-in'),等等,我会很高兴的。 注意:-我对网

需要为特定元素实现browser.wait()。需要一些帮助来完成这件事

场景->单击过滤器div,将显示隐藏的div。需要等待,直到它是可见的

单击前-

<div id = "collapseGenericFilter" class="pannel-collapse collapse">
是这样吗? 如果我找到dom元素,首先是ID,然后是类,比如
元素('GenericFilter')。然后是.css('panel-collapse-in'),等等,我会很高兴的。

注意:-我对网络技术非常陌生,所以如果这是一个愚蠢的问题,请忽略它,我仍在学习

提前谢谢

链函数不适用于同一元素。它被设计成 父子元素。例如,div1有另一个类名为div2的div。对于这个场景,我们可以使用chain function->>browser.element(by.id('div1)).element(by.css('.div2'))

对于您的解决方案,我们可以先按id检查元素,然后按其类属性检查元素

<div id="collapseGenericFilter" class="pannel-collapse collapse in"> 
browser.wait(() => element(by.css('.panel-collapse.collapse.in')).isPresent(),
500,
'long wait');
    //first click on element  
    var genericFilter = browser.element(by.id('collapseGenericFilter')); 
    genericFilter.click(); 
    //It will wait for generic filter until it has exact class name 
    browser.driver.wait(function(){
         genericFilter.getAttribute('class').then(function(className){
                return className.indexOf('pannel-collapse collapse in') !== -1;
              },50000, 'Element not present ');
     },50000);