选择复选框,如果未选择量角器



我尝试在场景之后执行量角器:

  1. 查找复选框
  2. 检查是否已选择
    • 如果是 - 进一步
    • 如果不是 - 选择它然后进一步

由于某种原因,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]

最新更新