如何使用CSS或xpath获取文本的值?

时间:2019-09-13 15:52:58

标签: katalon-studio

我需要验证页面上的文本,而不是给出文本的实际值,Katalon给出了我使用的CSS错误。

这是我创建的关键字:

@Keyword
    def usersText(){

        WebDriver driver = DriverFactory.getWebDriver()

        WebElement su = driver.findElement(By.cssSelector("#table-page .ui-title"))

        //String usersText = WebUI.getText(findTestObject('Object Repository/WMS/Page_System Users/h1_System Users'))

        return su
    }

以下是用于调用关键字的脚本:

WebUI.click(findTestObject('Object Repository/WMS/Page_Dashboard/img_Developer Options_system_users'))

WebUI.delay(2)

String userText = CustomKeywords.'com.wms.modules.general.ModuleKeywords.usersText'()

if (WebUI.verifyTextPresent(userText, true, FailureHandling.STOP_ON_FAILURE)){
    println('System Users page has the text: '  + userText)
}

运行脚本后出现以下错误:

2019-09-13 09:53:25.756 INFO  c.k.katalon.core.main.TestCaseExecutor   - --------------------
2019-09-13 09:53:25.765 DEBUG testcase.C16354 - System Users           - 2: click(findTestObject("Object Repository/WMS/Page_Dashboard/img_Developer Options_system_users"))
2019-09-13 09:53:28.151 DEBUG testcase.C16354 - System Users           - 3: delay(2)
2019-09-13 09:53:30.160 DEBUG testcase.C16354 - System Users           - 4: userText = com.wms.modules.general.ModuleKeywords.usersText()
2019-09-13 09:53:30.247 INFO  k.k.c.m.CustomKeywordDelegatingMetaClass - com.wms.modules.general.ModuleKeywords.usersText is PASSED
2019-09-13 09:53:30.248 DEBUG testcase.C16354 - System Users           - 5: if (verifyTextPresent(userText, true, STOP_ON_FAILURE))
2019-09-13 09:53:30.484 DEBUG testcase.C16354 - System Users           - 1: println("System Users page has the text: " + userText)
System Users page has the text: [[CChromeDriver: chrome on XP (0c9a9313aebba81a65bf2ff2f68e5a09)] -> css selector: #table-page .ui-title]

它应该打印“系统用户”页面上显示文本:“系统用户”,而不是上面的错误信息。

1 个答案:

答案 0 :(得分:0)

usersText()方法返回类型su的{​​{1}}。它应该返回该元素的文本。

您应该将WebElement更改为

return su