如何检查元素是否在量角器的循环中可点击?
How to check if element is clickable in a loop in protractor?
我想检查 new_button
在循环中是否可点击,如果该元素可点击,我想停止循环。这是我的循环:
for(var i=0; i<items.length; i++) {
await items[i].click()
await browser.wait(EC.elementToBeClickable(datepicker), waitLongTime);
await browser.wait(EC.elementToBeClickable(provider_filter_button), waitLongTime);
if(await (new_button.isClickable())) {
break;
}
}
在这种情况下,您可以使用一个技巧。
ExpectedConditions.elementToBeClickable() returns 函数 returns 解析为布尔值的承诺 - true
如果传递的元素是可点击的,false
如果不是。
因此,请记住两点:
- 因为它 returns 一个你需要调用它的函数。注意最后的括号:
ExpectedConditions.elementToBeClickable(new_button)() // <---
- 函数 returns 需要用
await
解决的 Promise:
await ExpectedConditions.elementToBeClickable(new_button)() // <---
所以你最终会得到
if(await ExpectedConditions.elementToBeClickable(new_button)()) {
break;
}
可能有更好、更简洁的方法来执行此操作,但此方法 100% 有效
我想检查 new_button
在循环中是否可点击,如果该元素可点击,我想停止循环。这是我的循环:
for(var i=0; i<items.length; i++) {
await items[i].click()
await browser.wait(EC.elementToBeClickable(datepicker), waitLongTime);
await browser.wait(EC.elementToBeClickable(provider_filter_button), waitLongTime);
if(await (new_button.isClickable())) {
break;
}
}
在这种情况下,您可以使用一个技巧。
ExpectedConditions.elementToBeClickable() returns 函数 returns 解析为布尔值的承诺 - true
如果传递的元素是可点击的,false
如果不是。
因此,请记住两点:
- 因为它 returns 一个你需要调用它的函数。注意最后的括号:
ExpectedConditions.elementToBeClickable(new_button)() // <---
- 函数 returns 需要用
await
解决的 Promise:
await ExpectedConditions.elementToBeClickable(new_button)() // <---
所以你最终会得到
if(await ExpectedConditions.elementToBeClickable(new_button)()) {
break;
}
可能有更好、更简洁的方法来执行此操作,但此方法 100% 有效