【发布时间】:2014-05-26 05:54:50
【问题描述】:
我正在尝试使用 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);
});
尽管我手动检查了元素是否存在,但我总是将计数设为 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>
【问题讨论】:
-
您的选择器似乎是错误的。您的选择器正在搜索 ID 为 #MainContent 后跟 div 元素的元素。你会显示一些 html 吗?
-
@nilsK:实际的 HTML 相当复杂。我在可以重现该问题的问题中放置了一些示例 HTML。谢谢
-
抱歉回复晚了。尝试以下操作: var main = driver.findElement(by.id('#MainContent')); main.findElements(by.tagName('div')).then(function(divArr) {//...});这里的问题是,divArr 将包含 MainConent 中找到的所有 div 元素。
标签: angularjs protractor