我希望Protractor / Jasmine在有效按钮时立即点击按钮(它已被通知隐藏了一段时间)。
var wrench = $('div.ibox-tools.ibox-tools-item.dropdown');
browser.wait(expectedConditions.elementToBeClickable(wrench), 50000).then(function() {
wrench.click();
});
似乎Protractor忽略了这个条件。我收到一个错误:
Failed: unknown error: Element <div class="ibox-tools ibox-tools-item dropdown" uib-dropdown="">...</div> is not clickable at point (842, 145). Other element would receive the click: <div ng-switch-when="true" class="toast-message" ng-bind-html="message">...</div>
怎么会这样?当我在它前面放一个长browser.sleep()
时,它就可以工作。
答案 0 :(得分:1)
如果我深入研究量角器expectedConditions.elementToBeClickable()
的源代码,请执行以下操作
visibilityOf
表示this,因此会检查是否存在(在您的情况下是在DOM中),然后检查元素isDisplayed
isDisplayed
检查元素的可见性,例如可见性属性,请参阅here 根据消息来源和你说的这是&#34;正确&#34;行为,元素在页面上,元素没有像display:none
/ visibility: hidden
这样的属性。它只是不符合你的期望,因为前面有一个元素。
我建议采取不同的方法。您是否可以找到通知并等待通知的stalenessOf,然后单击按钮?
希望有所帮助