Typescript 如何使用量角器选择下拉列表的所有值

Typescript 如何使用量角器选择下拉列表的所有值,typescript,promise,protractor,Typescript,Promise,Protractor,我有一个场景,其中有一个元素,单击打开的下拉列表。所以我必须逐个选择下拉列表中的每个值。所以选择一个值,然后关闭下拉列表,然后再次打开下拉列表,选择第二个值,依此类推,每次选择后,我需要执行一些操作 这是我试过的一个代码 this.allZoomTimeValues.each((value)=>{ browser.driver.sleep(3000) console.log("1")

我有一个场景,其中有一个元素,单击打开的下拉列表。所以我必须逐个选择下拉列表中的每个值。所以选择一个值,然后关闭下拉列表,然后再次打开下拉列表,选择第二个值,依此类推,每次选择后,我需要执行一些操作

这是我试过的一个代码

this.allZoomTimeValues.each((value)=>{  
                  browser.driver.sleep(3000) 
                console.log("1")
                value.getText().then(a=>{
                     console.log("2")
                    this.buttonCross.click().then(function(){
                         console.log("3")
                            browser.driver.sleep(3000).then(function(){
                                 console.log("4")
                                  browser.actions().mouseMove(this.canvas.get(0), {x: 10, y: 80}).click().perform();  
                            })

                    });
                });
            });
因此它抛出错误“失败:无法读取未定义的属性“canvas”

我知道这是由于承诺,但不知道如何解决承诺的一个又一个的代码。 这是显示的输出

1
1
1
1
1
1
1
1
1
1
2
3
4
F
所以这里所有的10个值都被返回,最后一个值所有其他的承诺都被解决了


因此,请帮助我选择下拉列表中的每个值,因为这是一个承诺,循环将在 在下一个线程中调用承诺解析程序处理程序

试试这个:

a(0);
功能a(索引){
让value=this.allZoomTimeValues[index];
如果(!value){return;}
浏览器.驱动程序.睡眠(3000)
value.getText().then(a=>{
this.buttonCross.click(),然后(function()){
browser.driver.sleep(3000).then(function(){
browser.actions().mouseMove(this.canvas.get(0),{x:10,y:80});
a(++指数);
})
});
});

}
谢谢!非常感谢……:)