Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.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 AngulareJS e2e检查列表中的每个链接_Javascript_Element_Angularjs - Fatal编程技术网

Javascript AngulareJS e2e检查列表中的每个链接

Javascript AngulareJS e2e检查列表中的每个链接,javascript,element,angularjs,Javascript,Element,Angularjs,我是AngularJS的新手,我将主要使用e2e部分(与jasmine一起)。在这几天毫无进展的情况下(至少可以说,我发现文档中的内容相当厌食!),我想知道是否有人可以在这里帮助我: 网站生成A=href链接的html列表。我可以使用angularjs e2e“点击”链接,如下所示: element('li a').click(); 好的。但这里有两个问题: 如果列表中有6个链接,单击该链接是哪一个??(在正在测试的html代码中,这些链接没有唯一的id,有些链接可能是完全相同的引用/url等

我是AngularJS的新手,我将主要使用e2e部分(与jasmine一起)。在这几天毫无进展的情况下(至少可以说,我发现文档中的内容相当厌食!),我想知道是否有人可以在这里帮助我:

网站生成A=href链接的html列表。我可以使用angularjs e2e“点击”链接,如下所示:

element('li a').click();
好的。但这里有两个问题:

  • 如果列表中有6个链接,单击该链接是哪一个??(在正在测试的html代码中,这些链接没有唯一的id,有些链接可能是完全相同的引用/url等)

  • 如何循环浏览列表中的每个链接?i、 元素(链接[1])。单击()->。。。执行任何操作,然后导航回->元素(链接[2])。单击()。。。做任何事然后导航回来。。。等等


  • (注意:angularjs e2e版本的'element'与'angular.element'不一样。)

    好的-以防其他人好奇(我不是地球上唯一一个试图弄清楚这件事的人!)我自己解决了问题1:通过将值硬编码到列表中,我发现

    element('li a')
    
    。。。将选择最后列出的项目


    因此,让“element()”在列表中选择一个特定的项,这似乎是一个无法解决的问题

    console.log("ROYDEBUG: " + element('li a'));
    
    。。。将“ROYDEBUG:[对象]”返回控制台日志

    但是我可以让它识别出有“x”个列表项。如果我这样做:

       element('li a').query(function (selectedElements, done) {
            selectedElements.each(function(idx,elm)
                {
                    var thisOne = selectedElements[idx]; //<-- (same as "= this;").
                    console.log("ROYDEBUG:  " + idx + " - " + thisOne);
                    //element(thisOne).click();                //<-- doesn't work :(
                    //element(this).click();                   //<-- doesn't work :(
                    //element(selectedElements[idx]).click();  //<-- doesn't work :(
                });
            done();
       });
    

    。。。因此它知道列表中有6项。但是,我不能使用“element().click()”来处理这些返回的“elements”,因为它们只是每个链接“href=”部分的文本字符串(如您在上面的控制台输出中所看到的)。

    已解决

    element('li:eq(0) a').click(); //<-- clicks the first link.
    
    element('li:eq(1) a').click(); //<-- clicks the 2nd link.
    

    元素('li:eq(0)a')。单击()//在'element('li a')上执行console.log时会得到什么
    
    element('li:eq(0) a').click(); //<-- clicks the first link.
    
    element('li:eq(1) a').click(); //<-- clicks the 2nd link.