javascript - 检查复选框是否被选中总是返回 true

标签 javascript html automated-tests e2e-testing testcafe

在 WebdriverIO 上,我能够断言是否使用以下方法选中了相同的复选框:

返回$(selector).isSelected()

<form action="/cases/enableSubcases" id="CompanyInfoSettingsForm" method="post" accept-charset="utf-8">
  <div style="display:none;"><input type="hidden" name="_method" value="POST"><input type="hidden" name="data[_Token][key]" value="8f8c3c04cd70aa8207bd045382f4cc5a10d54ff6" id="Token436554541"></div>
  <div class="col-xs-6 standard-checkbox"><input type="hidden" name="data[CompanyInfo][subcases_enabled]" id="CompanyInfoSubcasesEnabled_" value="0"><input type="checkbox" name="data[CompanyInfo][subcases_enabled]" value="1" id="CompanyInfoSubcasesEnabled"><label for="CompanyInfoSubcasesEnabled">Enable subcases</label></div>
  <input type="submit" value="Add" data-target="" data-ajax-events="{}" class="hidden btn btn-blue btn-in-form save ajax ajax-submit" id="submitSubcasesActivate">
  <div style="display:none;"><input type="hidden" name="data[_Token][fields]" value="a16a56244433cb631f47cf444d68fee6f6593663%3A" id="TokenFields1306079178"><input type="hidden" name="data[_Token][unlocked]" value="" id="TokenUnlocked441950973"></div>
</form>

在这里你可以看到如果我检查代码会发生什么:https://photos.app.goo.gl/XnXgCufNxPF2YqoZ6

我正在尝试的是:

async areSubcasesEnabled() {
  await t
    .navigateTo(urlFor('?/cases/settings'))

  if(this.elements.subcases.checked)
    return true
  else 
    return false
}

并且它总是返回true

最佳答案

Selector 返回一个 Promise,解析为包含 checked 属性的 DomNodeSnaphot - https://devexpress.github.io/testcafe/documentation/test-api/selecting-page-elements/dom-node-state.html#members-specific-to-element-nodes .

因此,您需要添加 await 关键字来获取 Promise 值。

async areSubcasesEnabled() {
  await t
    .navigateTo(urlFor('?/cases/settings'))

  return await this.elements.subcases.checked;
}

关于javascript - 检查复选框是否被选中总是返回 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56922343/

相关文章:

javascript - 根据项目标签删除 xml 中的行

php - 将用户重定向到移动网站的最佳技术

javascript - Html5/Javascript 游戏延迟

javascript - 未提供 expressjs 静态文件

html - 多行 Bootstrap 网格系统文本对齐

javascript - Protractor :有错误但测试通过

html - 空的 div 是不可见的

html - CSS - Div焦点改变蓝色边框高亮颜色

javascript - 在 Electron 应用程序中使用 Selenium 与网页进行交互

java - 使用数据提供程序时如何在测试后重新启动浏览器