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

How to get the value of the text using CSS or xpath?

我需要验证页面上的文本,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]

它应该打印 "System Users page has the text: System Users",而不是上面的错误。

usersText() 方法返回类型 WebElementsu。它应该返回该元素的文本。

您应该将 return su 更改为

return su.getText()