无法迭代wdio返回的数组元素。我希望能够将数组中的任何元素作为参数传递给将来的函数,并单击匹配条件的元素。
下面的代码在控制台中显示了这个错误“不能用选择器“ng-drop-panel”调用元素上的$,因为找不到元素。
let element = $$('ng-select');
for await (const item of element[0].$('ng-dropdown-panel').$('div').$$('div')[1].$$('div')) {
if( await item.getText() == Field.CODE){
item.click();
break;
}
}
下面的代码工作正常,但我不想能够传递元素作为一个参数,所以我可以避免重复的代码行。
let element = $$('ng-select')[0];
for await (const itemof element.$('ng-dropdown-panel').$('div').$$('div')[1].$$('div')) {
if( await item.getText() == Field.CODE){
item.click();
break;
}
}
我试过这个,但它不工作:
public async formFilling(){
let element = $$('ng-select');
await this.selectValueInDropDown(element[0].$('ng-dropdown-panel').$('div').$$('div')[1].$$('div'), "ADD");
}
public async selectValueInDropDown(dropDownSelector:any, dropDownValue: string){
for await (const item of dropDownSelector) {
if( await item.getText() == dropDownValue){
item.click();
break;
}
}
}
1条答案
按热度按时间ffx8fchx1#
经过大量的调试,我注意到我没有点击下拉组件,因此内部的HTML元素还没有呈现。所以只要确保点击'ng-select'选项显示显示。