Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何编写量角器测试,在“ng repeat”中查找第一个元素?_Javascript_Jquery_Angularjs_Selenium Webdriver_Protractor - Fatal编程技术网

Javascript 如何编写量角器测试,在“ng repeat”中查找第一个元素?

Javascript 如何编写量角器测试,在“ng repeat”中查找第一个元素?,javascript,jquery,angularjs,selenium-webdriver,protractor,Javascript,Jquery,Angularjs,Selenium Webdriver,Protractor,我试图弄清楚如何使用下面的view.html,并测试第一个元素/tile时的列和行位置.col、.row <div class="container" gridster="gridsterOpts"> <ul> <li> <tile tilevalue="{{tile.tileId}}" gridster-item="tile" row="{{tile.row}}" col="{{t

我试图弄清楚如何使用下面的view.html,并测试第一个元素/tile时的列和行位置.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>

你知道怎么做吗?我不知道如何使用repeater调用,我想这就是解决方案的来源。

Angular中的ng repeat调用只是生成适当的html来显示相关信息。因此,您的ElementFinder或ElementFinder只需选择使用ByCss所需的行和列

查看w3schools的示例并检查结果

您将看到以下角度代码

<ul>
  <li ng-repeat="x in names">
    {{ x }}
  </li>
</ul>


由于这是一个量角器特定的问题-您可以使用内置的并获取第一个元素:

然后,要获取行和列属性值,请使用:

或者,如果要断言这些值:

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

谢谢这是一条正确的路径,但是如何编写expect,以便测试该元素是否位于第0行第0列中say@KO12当然可以,请查看更新的答案。如果答案有帮助的话,别忘了接受。谢谢
element(by.Css('ul li'));
element(by.Css('ul li tile'));
var firstTile = element.all(by.repeater("tile in selectedTiles")).first();
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");