【发布时间】:2015-09-07 09:27:48
【问题描述】:
我仍在学习量角器,所以我不确定这是否是一个我没有得到的简单答案,但我只是想让浏览器等到我检索的属性为真。
我正在测试 this site 的披萨选项。
完整代码:
browser.get('https://material.angularjs.org/latest/#/demo/material.components.select');
var topping = element(by.model('topping'));
topping.click();
browser.wait(function() {
return topping.getAttribute('aria-expanded').then(function(value) {
return value == 'true';
});
}, 5000);
var toppingOptions = element.all(by.css('[role="option"]'));
toppingOptions.get(5).click();
expect(topping.getText()).toBe('Onion');
这给了我错误:
元素在点 (436, 693) 处不可点击。其他元素会收到点击:
<md-backdrop class="md-select-backdrop md-click-catcher md-default-theme"></md-backdrop>
还要注意,如果我将 browser.sleep(1000); 放在 topping.click() 之后和 browser.wait() 之前,则测试通过。所以我知道剩下的测试不是失败的。由于某种原因,等待的调用不起作用。
我认为这可能与我尝试单击的选项在单击 topping 时在技术上不可见这一事实有关,因为它位于带有滚动元素的 ComboBox 中。如果有人知道模拟滚动到“洋葱”元素的好方法,那也将不胜感激。
【问题讨论】:
标签: javascript angularjs selenium testing protractor