如何验证复选框是否已单击?

问题描述 投票:0回答:1

我的代码无法验证是否选中了该复选框。无论其选中还是未选中,它都会在每次迭代中单击该框。我尝试了各种方法,但是都没有工作,因为期望值不匹配而引发错误。随后会检查和取消检查]

  const checkbox = await element(by.css(locatorValue));
    await browser.wait(until.elementToBeClickable(await checkbox), 30,
            'Unable to locate check box to click .');
    if ( expect(checkbox.isSelected()).toBe(false)) {
        console.log('print bValue...:');
        await browser.executeScript('arguments[0].scrollIntoView();', checkbox.getWebElement());
        await checkbox.click();
        await expect(checkbox.isSelected()).toBe(true);
    } else {
        await expect(checkbox.isSelected()).toBe(true);
        console.log('already checked');
    }



await checkbox.isSelected().then(async bEnabled => {
    if ((bEnabled.toLocaleString()) === false) {
    await checkbox.click().then(() => {
         console.log('Clicking unchecked boxes : ' + bEnabled);
        browser.driver.sleep(2000);
        browser.executeScript('arguments[0].scrollIntoView();', checkbox.getWebElement());
        checkbox.click();
    }).catch(error => logger.error(error));
    } else {
         console.log('Checkbox was already clicked : ' + bEnabled);
    }
}).catch(error => logger.error(error));


await checkbox.getAttribute('checked').then ((bValue ) => {
console.log('print bValue...: ' + bValue);
if (bValue === null) {
 console.log('Clicking given check box by index number');
     browser.executeScript('arguments[0].scrollIntoView();', checkbox.getWebElement());
     checkbox.click();
    browser.driver.sleep(2000);

} else {
     console.log('Check box was already clicked');
}
});
typescript jasmine protractor
1个回答
0
投票

您可以使用isSelected命令预先轻松地对其进行验证。

https://www.protractortest.org/#/api?view=webdriver.WebElement.prototype.isSelected

© www.soinside.com 2019 - 2024. All rights reserved.