【发布时间】:2014-08-09 01:02:37
【问题描述】:
我正在使用 Protractor 软件进行端到端测试。一些元素正在使用 ng-show 设置。
谁能告诉我如何使用 Protractor 检查这些元素是否可见?
【问题讨论】:
标签: angularjs protractor
我正在使用 Protractor 软件进行端到端测试。一些元素正在使用 ng-show 设置。
谁能告诉我如何使用 Protractor 检查这些元素是否可见?
【问题讨论】:
标签: angularjs protractor
假设您的元素的 ID 为“foo”,例如,您可以这样做
expect($('#foo').isDisplayed()).toBe(true); // or false to test that it's hidden
或
expect(element(by.id('foo')).isDisplayed()).toBe(true);
【讨论】:
我发现 isDisplayed() 返回一个 Promise,然后在 .then 中传递布尔值。所以看起来更像这样:
$('#foo').isDisplayed().then(function(isDisplaying) {
expect(isDisplaying).toBe(true);
});
【讨论】:
then()。
.then 传回的布尔值。
期望知道处理承诺,所以以下工作。
expect($('#foo').isDisplayed()).toBe(true);
【讨论】:
假设您有许多具有相同 id/class 的元素,并且您希望 assert 计算可见元素的数量
var elements = element.all(by.id('foo'))
.filter(function(el){
return el.isDisplayed();
});
expect(elements.count()).toEqual(2);
【讨论】: