Verifying the element selected based on ::after

I am trying to get a list of the elements that are checked based on ::after

When the checkbox is not selected, the HTML is like this:

But when the checkbox is selected, the only change that happens in HTML is the addition of ::after inside input tag.

Does someone know how I can verify the element checked in this scenario

CSS does not reflect how the checked property of the DOM element <input type="checkbox"> is.

You can read the DOM element’s checked profile by javascript inside browser, and it is the only way.

See the following TestCase as example.

import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI

WebUI.navigateToUrl('')'Object Repository/Page_CURA Healthcare Service/a_Make Appointment'))
WebUI.setText(findTestObject('Object Repository/Page_CURA Healthcare Service/input_Username_username'), 'John Doe')
WebUI.setEncryptedText(findTestObject('Object Repository/Page_CURA Healthcare Service/input_Password_password'), 'g3/DOGG74jC3Flrr3yH+3D/yKbOqqUNM')'Object Repository/Page_CURA Healthcare Service/button_Login'))

String selector = "input#chk_hospotal_readmission"
String js = "return document.querySelector(\"${selector}\").checked ;"

assert ! WebUI.executeJavaScript(js, null)'Object Repository/Page_CURA Healthcare Service/input_Apply for hospital readmission_hospit_63901f'))

assert WebUI.executeJavaScript(js, null)

Have you have tried the below statements?
WebUI.verifyElementNotChecked(findTestObject('yourTO'), 10)


WebUI.verifyElementChecked(findTestObject('yourTO'), 10)


Since I have the list of checkboxes, what I want to do is to uncheck all the boxes that are checked so I came up with this:

def static removeAppliedCashReward() {
   	 final List<TestObject> cashRewards =

   	 for (int i = 0; i < cashRewards.size(); i++) {
   		 if (WebUI.verifyElementChecked(cashRewards.get(i), 1)) {

But when I call this method, it gives the error:

Caused by: com.kms.katalon.core.exception.StepFailedException: Object '' is not checked

I think when it checks the first checkbox and if it is not checked, it fails the test there. What I want is that if the box is not checked it should continue to the next checkbox

How about adding the FailureHandling option to your condition? I have seen that it seems to be important when we want the full capability of the boolean verification.

      if (WebUI.verifyElementChecked(cashRewards.get(i), 1, FailureHandling.OPTIONAL)) {

I was just able to uncheck all the checked boxes with the same code I was using, I just had to add FailureHandling.OPTIONAL in VerifyElementChecked