Nightwatchjs - 验证是否勾选了复选框,即使已勾选,也始终返回false

时间:2018-04-20 02:12:06

标签: javascript automation nightwatch.js

我目前正在进行测试以验证是否选中了复选框,如果发现复选框状态为false,请勾选它。如果未选中,我已经能够标记复选框。问题是,当我检查已经勾选的复选框的状态时,它总是返回' FALSE'。

任何人都可以帮我验证我的代码吗?谢谢!

这是我的代码:

checkbox.js

Given(/^the sysadmin activates a system product/, () => {
    client.element('class name', 'checkmark', function(response) {
        client.assert.ok(response.value.ELEMENT, 'Checkbox response OK');
        client.elementIdSelected(response.value.ELEMENT, function(result){
            console.log("Status: ", result);
            console.log("Status: ", result.value);
            if (result.value == false) {
                console.log("Result value is ", result.value);
                SYSPRODUCTSOBJ.click('@sysProductBlood')
                .waitForElementVisible('@sysProductSaveBtn', 6000)
                .click('@sysProductSaveBtn');
            }
            client.verify.ok(result.value, 'Checkbox selected');
        });
    });
    return client.pause(2000);
});

elementModel.js

    module.exports = {
    elements: {
        sysProductBlood: {
            selector: ".//*[@data-v-594c377e]//*[@for='1']//*[@class='checkmark']",
            locateStrategy: 'xpath'
        },
        sysProductSaveBtn: {
            selector: ".//*[@class='system-product']//*[@class='btn btn-default']",
            locateStrategy: 'xpath'
        },
}

HTML

<label data-v-594c377e="" for="1"><input data-v-594c377e="" type="checkbox" id="1" value="BloodControl"><div data-v-594c377e="" class="checkmark"></div>BloodControl</label>

1 个答案:

答案 0 :(得分:0)

这是事情变得奇怪不一致的事情之一。我之前也被这个人咬过了。

复选框使用checked属性,而不是value

https://www.w3schools.com/jsref/prop_checkbox_checked.asp