我正在编写一个测试,该测试应迭代直到找到部分匹配的文本。一旦找到,它应该做一些事情。这是我的代码。
let getName = await $$('.button').getText();
if (getName === 'New name') {
// do something here
}
即使存在匹配的名称,我的测试也不会重复。它还应考虑进行局部测试,例如新名称1。
感谢您的建议。
答案 0 :(得分:0)
由于您的问题缺少详细信息,我的答案是一片黑暗,但我会尽力猜测您的问题。
$$().getText()
返回字符串数组,因此您的代码必须为
let names = await $$('.button').getText();
for (let i=0; i<names.length; i++) {
if (names[i].includes('New name')) {
// do something here
}
}
但是当您await $$().getText()
的元素数量超过10个时,请准备好面对此错误Random occurrences of Failed: ECONNREFUSED connect ECONNREFUSED 127.0.0.1 when running protractor tests
实际上,我必须基于一个假设,即您需要与符合条件的第一个元素进行交互,在这里还要加上另一个猜测
let $newNameElement = await $$('.button').filter( $elem =>
(await $elem.getText()).toLowerCase().includes('new name');
).get(0);
// do whatever you want with your $newNameElement