需要为特定元素实现browser.wait()。需要一些帮助才能完成这项工作。
场景 - >单击过滤器div时,将显示隐藏的div。需要等到它可见
点击之前 -
<div id = "collapseGenericFilter" class="pannel-collapse collapse">
点击后 -
<div id="collapseGenericFilter" class="pannel-collapse collapse in">
是否有任何方法可以在id上使用browser.wait,直到特定的类选择器可见。
我正在使用
解决这个问题browser.wait(() => element(by.css('.panel-collapse.collapse.in')).isPresent(),
500,
'long wait');
这是对的吗?
如果我首先通过ID找到dom元素然后在课堂上发布类似element('GenericFilter').by.css('panel-collapse collapse in') etc.
注意: - 我对网络技术非常陌生,如果这是一个愚蠢的问题,我会好好地忽略,我还在学习。
提前致谢
答案 0 :(得分:1)
链功能对同一元素不起作用。它旨在获得 父子元素。例如, div1有另一个div,类名为div2 。对于这种情况,我们可以使用链函数 - &gt;&gt; browser.element(by.id( 'DIV1))。元素(by.css('。DIV2' ))
对于您的解决方案,我们可以先通过ID检查元素,然后检查其类属性
//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);