javascript - 如何编写一个 Protractor 测试来查找 'ng-repeat' 中的第一个元素?

标签 javascript jquery angularjs selenium-webdriver protractor

我试图弄清楚如何获取下面的 view.html,并测试第一个元素/图 block 的列和行位置(.col 、 .row)。

<div class="container" gridster="gridsterOpts">
        <ul>
            <li>
                <tile tilevalue="{{tile.tileId}}" gridster-item="tile" row="{{tile.row}}" col="{{tile.col}}" size-x="{{tile.sizeX}}" size-y="{{tile.sizeY}}" ng-repeat="tile in selectedTiles"/>
            </li>
        </ul>
    </div>

有什么想法可以做到这一点吗?我不知道如何使用转发器调用,我想这就是解决方案的来源。

最佳答案

由于这是一个 Protractor 特定的问题 - 您可以使用内置 by.repeater() locator并获取 first() 元素:

var firstTile = element.all(by.repeater("tile in selectedTiles")).first();

然后,要获取 rowcol 属性值,请使用 getAttribute() :

firstTile.getAttribute("row").then(function (row) {
    console.log(row);
});
firstTile.getAttribute("col").then(function (col) {
    console.log(col);
});

或者,如果您想断言值:

expect(firstTile.getAttribute("row")).toEqual("0");
expect(firstTile.getAttribute("col")).toEqual("0");

关于javascript - 如何编写一个 Protractor 测试来查找 'ng-repeat' 中的第一个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37142457/

相关文章:

java - 如果他在相同或不同的浏览器上再次登录,如何注销用户的先前 session

javascript - Angular SVG 操作在 IE10 中不起作用

javascript - 使用两个单选按钮和一个表单合并两个表单

javascript - 如何使用 POST 请求同步提交数据,即不是 ajax 请求

javascript - 在 ajax 回调函数的每个循环之后附加输出

javascript - 服务或工厂,以及如何使用 $http 到达那里

javascript - Angular 使用一个函数实现多个事件

javascript - 等待异步 grunt 任务完成

javascript - 删除固定导航菜单弹跳 - jQuery?

javascript - 在提交表单之前进行ajax请求,并在ajax完成后提交数据