我尝试在场景之后执行量角器:
- 查找复选框
- 检查是否已选择
- 如果是 - 进一步
- 如果不是 - 选择它然后进一步
由于某种原因,isSelected()
功能无法与我的复选框一起使用,但我找到了一些解决方案。以下代码正常工作:
expect(checkbox.getAttribute('aria-checked')).toEqual('false')
它选中一些复选框属性,如果未选择,则" false",如果选择了" true"。(但作为字符串)
现在是主要问题。如何编写" if/else"语句以使其有效?
我尝试了这样的事情:
if (expect(checkbox.getAttribute('aria-checked')).toEqual('false')) {
checkbox.click();
}
但是,它总是单击复选框,无论是否选择了。我也尝试了:
if (checkbox.getAttribute('aria-checked').toEqual('false')) {
checkbox.click();
}
但是有一个错误,上面写着"这不是函数"。
有人可以帮我吗?
您可以使用以下方法解决问题。
在单击任何复选框之前,请检查aria-checked
属性的值,如果其true不做任何事情。否则单击它。
checkBoxElement.getAttribute("aria-checked").then(function(isChecked){
if(isChecked == "false") { //getAttribute will return the value as string.
checkBox.click();
}
})
您可以尝试制作一些辅助功能:
function setCheckBoxTo(locator, value){
var checkbox = element(locator);
checkbox.isChecked().then(function(selected){
if(selected !== value){
checkbox.click();
}
}
}
其中 [value is true/false]