在使用element.all遍历表时,量角器抛出StaleElementReferenceError

时间:2019-02-12 07:34:43

标签: javascript jasmine protractor

我有量角器测试,它将在具有6列的表上进行迭代。我使用element.all在表上进行迭代,然后在第一列中搜索特定的文本。如果匹配,请检查第6列中的状态,如果将其设置为“激活”,请单击匹配的行,将其转到另一页,执行操作,返回到表格页面,在同一表格上重申并检查该特定文本并确认最终状态为再次激活。

测试运行正常,但失败并出现以下错误。

StaleElementReferenceError: stale element reference: element is not attached to the page document

element.all(by.css('tbody tr')).each(function(item){
    var count=0;
    var pass=0;
    //TEST VALUES BELOW
    var appNameCreated="Test App 534";
    //TEST VALUES ABOVE
    item.element(by.css('td:nth-child(1)')).getText().then(function(appname){
        if(appname==appNameCreated){
            console.log(appname,appNameCreated);
            item.element(by.css('td:nth-child(6)')).getText().then(function(result){
                pass += 1;
                console.log(result);
                if (result=="Activated"){
                //if (result==data.resultSubmit){
                    item.element(by.css('td:nth-child(1)')).element(by.css('a')).click().then(function(){
                    browser.sleep(4000);
                    });
                    element(by.id("btnTab3")).element(by.xpath('span')).click();
                    browser.wait(EC.visibilityOf(element(by.xpath('/html/body/gft-root/section/div[2]/app-onboard-list/div[4]/div[3]/table/tbody/tr[1]/td[1]'))),15000);
                    element(by.id("button-basic")).click();
                    element.all(by.css('ul[class="dropdown-menu"]')).each(function(item1){
                        item1.element(by.css('li:nth-child(7)')).element(by.css('a')).click();
                    })
                    element.all(by.css('tbody tr')).each(function(item2){
                        item2.element(by.css('td:nth-child(1)')).getText().then(function(appname1){
                            if(appname1==appNameCreated){
                                item2.element(by.css('td:nth-child(6)')).getText().then(function(resultFin){
                                    console.log(resultFin);
                                    browser.actions().mouseMove(item2.element(by.css('td:nth-child(1)'))).perform();
                                    expect(resultFin).toBe(data.resultFinal);
                                })
                            }   
                        })
                    })
                }           
            })
        }
    })
})

0 个答案:

没有答案