Gau*_*ham 10 angularjs protractor
我正在尝试使用Protractor查找容器下的所有可见元素
function getVisibleDivs(driver) {
var links = driver.findElements(by.css("#MainContent div"));
return protractor.promise.filter(links, function(link) {
link.isDisplayed();
})
.then(function(visibleLinks) {
return visibleLinks;
});
}
element.all(getVisibleDivs).then(function (items) {
console.log(items.length);
});
Run Code Online (Sandbox Code Playgroud)
虽然我手动检查了元素是否存在,但我总是将计数设为0.任何用于调试的指针都非常赞赏.
更新一些示例html
<html>
<body>
<div id="MainContent">
<div class="header">
Header
</div>
<div class="content">
Content
</div>
<div class="sidebar" style="display:none">
Sidebar
</div>
<div class="footer">
Footer
</div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
ale*_*cxe 10
无需protractor.promise
直接使用.量角器公开函数编程函数,如filter()
on ElementArrayFinder
- 的结果element.all()
.
以下是如何使用它:
var visibleDivs = $$("#MainContent div").filter(function(link) {
return link.isDisplayed();
});
expect(visibleDivs.count()).toEqual(3);
Run Code Online (Sandbox Code Playgroud)
您的过滤器函数不会返回任何内容,因此将“return”添加到 link.isDisplayed():
function getVisibleDivs(driver) {
var links = driver.findElements(by.css("#MainContent div"));
return protractor.promise.filter(links, function(link) {
return link.isDisplayed();
})
.then(function(visibleLinks) {
return visibleLinks;
});
}
element.all(getVisibleDivs).then(function (items) {
console.log(items.length);
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6118 次 |
最近记录: |