我尝试在 Protractor 中执行以下场景:
- 查找复选框
- 检查是否被选中
- 如果是 - 进一步
- 如果没有 - 选择它并继续
由于某种原因,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();
}
})
关于javascript - 如果未使用 Protractor 选择,请选择复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47535635/