如何在DrugatorJS/Jasmine中编写函数将元素链接在一起
我试图构建一个可以接受标记名数组的函数,通过传入标记名数组,例如如何在DrugatorJS/Jasmine中编写函数将元素链接在一起,jasmine,protractor,Jasmine,Protractor,我试图构建一个可以接受标记名数组的函数,通过传入标记名数组,例如['span',input','strong']我希望它返回一个链来搜索元素。例如,我想找到 element(by.tagName('span')) .element(by.tagName('input')) .element(by.tagName('strong')); 通过使用我的函数,如 public static getNestedElements = (arrayOfElementTags) => {
['span',input','strong']
我希望它返回一个链来搜索元素。例如,我想找到
element(by.tagName('span'))
.element(by.tagName('input'))
.element(by.tagName('strong'));
通过使用我的函数,如
public static getNestedElements = (arrayOfElementTags) => {
const temporaryElementArr = [];
for (let i = 0; i < arrayOfElementTags.length; i++ ) {
temporaryElementArr.push(element(by.tagName(arrayOfElementTags[i])));
}
for (let j = 0; j < temporaryElementArr.length; j++) {
if (j !== temporaryElementArr.length) {
temporaryElementArr[j] = temporaryElementArr[j] + '.';
}
}
return temporaryElementArr
};
publicstaticgetnestedelements=(arrayOfElementTags)=>{
常量临时元素arr=[];
for(设i=0;i
上面的函数显然很糟糕,不起作用
element(by.tagName('span')).element(by.tagName('input')).element(by.tagName('strong'));
// equivalent to element(by.css('span input strong'))
因此,您可以使用空格连接所有标记以生成css选择器。并使用css选择器查找元素。如下所示
public static getNestedElements = (arrayOfElementTags) => {
return element(by.css(arrayOfElementTags.join(' ')));
}
我建议您保持逻辑简单,而不是使用函数
element(by.tagName('span')).element(by.tagName('input')).element(by.tagName('strong'));
//It is a simple way to get the chained element provided by protractor api
documentation.
创建一个函数是很麻烦的,它不会一直给你想要的结果