javascript - 如果未使用 Protractor 选择,请选择复选框

标签 javascript if-statement checkbox protractor

我尝试在 Protractor 中执行以下场景:

  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();
    }
})

关于javascript - 如果未使用 Protractor 选择,请选择复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47535635/

相关文章:

javascript - 热用循环删除 :nth-child elements, 吗?

mysql - 带计算的 if 语句

javascript - 对 AngularJS 中的复选框值进行排序

javascript - 为小书签从外部加载 jQuery

javascript - 文件输入我做错了什么?

r - R 中的嵌套 if-else 循环

jQuery - 如果值与数组中的元素匹配,则禁用复选框

php - 与服务相关的事件正确显示

javascript - Prebid.js - 找出哪个标签在 header 竞价拍卖中获胜

if-statement - 如何在ffmpeg中使用带有混合过滤器的多个语句