javascript - 在 while 循环中比较 .getAtribute("value")
问题描述
我在试图自动化的网页中有这个元素,我的问题是我创建了一个函数来清除输入或文本插槽,按下退格键直到元素长度变为 0,但我试图使另一个条件成为元素等于“0,00”。我尝试过使用以下代码:
async clear(locator) {
await this.locate(locator)
let aux = await element.getAttribute("value");
console.log("Value to be cleaned: ",aux)
while (aux.length > 0 || aux != "0,00") {
await element.sendKeys(Key.BACK_SPACE);
aux = await element.getAttribute("value");
console.log('A|',aux,'|',typeof aux)
console.log('B|',"0,00","|",typeof "0,00")
}
}
问题是它会导致无限循环,尽管参数似乎相同,我已经将控制台日志进行比较并且我收到了以下输出:
结果看起来是一样的,但条件永远不会满足并进入无限循环。
解决方案
你必须像这样编写while循环:
while (aux.length > 0 && aux != "0,00") {
await element.sendKeys(Key.BACK_SPACE);
aux = await element.getAttribute("value");
console.log('A|',aux,'|',typeof aux)
console.log('B|',"0,00","|",typeof "0,00")
}
你放错了|| (或) 而不是 && (和)。
推荐阅读
- ios - 删除 UITableView 中的最后一个单元格时索引超出范围
- doctrine-orm - 在 prePersist 中创建新实体和更改实体
- mysql - 在 MYSQL 中 - 在列中最多选择某个值
- c++ - 声明 2 个变量
- c# - 我的代码逻辑中更有意义的错误消息?
- symfony - symfony3 - 渲染视图后清除会话
- php - 如何获取数组中的重复项并选择其中一项在laravel的新数组中呈现
- linux - 在文件中查找部分重复行并计算每行重复了多少次?
- spotify - 获取用户 ID - WebAPI Spotify (Spotipy)
- dictionary - 从 golang 中的通道响应中填充地图值