If 语句没有捕捉到 Katalon 中的特定条件

If statement doesn't catch specific condition in Katalon

我在 katalon 中使用 if 语句编写了一个代码来满足条件,但不知何故 if 语句不符合我的条件。 这是我的代码:

def ElementChecked =
WebUI.verifyElementChecked(findTestObject('Page_/checkbox_BPKB_assignment'),0,FailureHandling.OPTIONAL)
        if (ElementChecked==true){
            println(">>>>>ALREADY CLICKED")
        }
        else{
            println(">>>>>Not clicked yet")
            WebUI.click(findTestObject('Page_/checkbox_BPKB_assignment'))
            WebUI.click(findTestObject('Page_/button_Submit'))
            WebUI.click(findTestObject('Page_/button_OK'))
        }

根据上面的代码,我要检查的元素是单选按钮。所以,如果单选按钮被选中,我会设置一个条件,然后打印(“>>>>>已经点击)否则打印(“>>>>>尚未点击”)并点击一下。但是,即使条件为真,它总是转到 else 语句。 谁能帮我看看这是怎么回事?

如果你有一些基于 is/is 的 bsns 逻辑没有检查,最好使用 org.openqa.selenium.WebElement

检查单选按钮状态的示例:

关键字定义:

import org.openqa.selenium.WebDriver
import org.openqa.selenium.WebElement
import com.kms.katalon.core.webui.driver.DriverFactory


public class Q58713480 {

    @Keyword
    def ElementChecked(TestObject testObject) {
        WebDriver driver = DriverFactory.getWebDriver()
        WebElement element = WebUI.findWebElement(testObject, 5)
        if (element.isSelected()) {
            KeywordUtil.logInfo("Element is checked.")
        }
        else {
            KeywordUtil.logInfo("Element is not checked.")
        }
    }
}

测试用例:

WebUI.openBrowser('')
WebUI.maximizeWindow()
WebUI.navigateToUrl("http://www.echoecho.com/htmlforms10.htm")
WebUI.waitForPageLoad(60)

CustomKeywords.'Q58713480.ElementChecked'(findTestObject('radio1'))
WebUI.click(findTestObject('radio1'))
CustomKeywords.'Q58713480.ElementChecked'(findTestObject('radio1'))

WebUI.closeBrowser()

输出:

...
2019-11-14 13:25:14.514 DEBUG testcase.question58713480                - 2: maximizeWindow()
2019-11-14 13:25:15.705 DEBUG testcase.question58713480                - 3: navigateToUrl("http://www.echoecho.com/htmlforms10.htm")
2019-11-14 13:25:18.382 DEBUG testcase.question58713480                - 4: waitForPageLoad(60)
2019-11-14 13:25:18.720 DEBUG testcase.question58713480                - 5: Q58713480.ElementChecked(findTestObject("radio1"))
2019-11-14 13:25:19.298 INFO  com.kms.katalon.core.util.KeywordUtil    - Element is not checked.
2019-11-14 13:25:19.299 INFO  k.k.c.m.CustomKeywordDelegatingMetaClass - Q58713480.ElementChecked is PASSED
2019-11-14 13:25:19.299 DEBUG testcase.question58713480                - 6: click(findTestObject("radio1"))
2019-11-14 13:25:19.568 DEBUG testcase.question58713480                - 7: Q58713480.ElementChecked(findTestObject("radio1"))
2019-11-14 13:25:19.726 INFO  com.kms.katalon.core.util.KeywordUtil    - Element is checked.
2019-11-14 13:25:19.726 INFO  k.k.c.m.CustomKeywordDelegatingMetaClass - Q58713480.ElementChecked is PASSED
2019-11-14 13:25:19.727 DEBUG testcase.question58713480                - 8: closeBrowser()
2019-11-14 13:25:20.702 INFO  c.k.katalon.core.main.TestCaseExecutor   - END Test Cases/question58713480

和 'radio1' 测试对象(手动创建):