在空手道中匹配HTML响应

时间:2020-02-03 15:48:07

标签: karate

我在将响应错误与html匹配时遇到问题。

我这样尝试过

  • 匹配$ .errors =='#present'
  • 匹配$ .errors ==响应

错误:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
</head>
<body>
<pre>Error: Unexpected object!</pre>
</body>
</html>

我正在这样做,并且程序将停止!

When method post
* if (responseStatus == 500 ) karate.abort()
  Then status 200
* match $.errors == '#notpresent'

我该怎么做才能将响应匹配为html文本?

1 个答案:

答案 0 :(得分:0)

抱歉,空手道仅适用于格式正确的XML。您可以尝试替换HTML中的内容以进行清理。或者,您可以进行字符串contains匹配等。或者,您可以编写一些JS或Java代码进行自定义检查。

这将起作用(在删除格式不正确的<meta>标记之后。

* def response =
"""
<!DOCTYPE html>
<html lang="en">
<head>
<title>Error</title>
</head>
<body>
<pre>Error: Unexpected object!</pre>
</body>
</html>
"""
* match //pre == 'Error: Unexpected object!'