在 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/