我的代码无法验证是否选中了该复选框。无论其选中还是未选中,它都会在每次迭代中单击该框。我尝试了各种方法,但是都没有工作,因为期望值不匹配而引发错误。随后会检查和取消检查]
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');
}
});
您可以使用isSelected
命令预先轻松地对其进行验证。
https://www.protractortest.org/#/api?view=webdriver.WebElement.prototype.isSelected