我正在尝试检查是否已选中复选框,如果没有,请检查它。无论如何,我永远无法检查它,因为它永远不会到达click()。请参阅下面的代码。
这是量角器测试中的代码:
//find item
var useSslInput = $('#useSsl');
if(newDirectory.useSsl == true){
if(!useSslInput.isSelected()){
useSslInput.click();
}
var sslInput = $('#sslCertificate');
sslInput.sendKeys(newDirectory.sslCertificate);
} else {
if(!useSslInput.isSelected()){
useSslInput.click();
}
}
html如下:
<div class="field">
<label class="field-label" for="useSsl">{{::'directory.page.add.label.useSsl' |i18n}}</label>
<div class="field-input"><input id="useSsl" name="useSsl" type="checkbox" ng-model="addEditDirectory.directory.useSsl" ng-checked="addEditDirectory.directory.useSsl"></div>
</div>
我在这里做错了吗?
答案 0 :(得分:6)
了解使用承诺:http://www.html5rocks.com/en/tutorials/es6/promises/
在您的特定情况下,您需要以下内容:
var useSslInput = $('#useSsl');
if(newDirectory.useSsl == true) {
useSslInput.isSelected().then(function(selected) {
if (!selected){
useSslInput.click();
}
var sslInput = $('#sslCertificate');
sslInput.sendKeys(newDirectory.sslCertificate);
});
} else {
useSslInput.isSelected().then(function(selected) {
if (!selected) {
useSslInput.click();
}
});
}