我得到一个xml,并希望通过XPath Extractor提取一个元素的值,但是它在jmeter中返回“ Assertion failure message:-1”。
<flag>
<sample>123</sample>
<others>...</others>
<target>a test sample</target>
</flag>
<flag>
<sample>1234</sample>
<others>...</others>
<target>a test sample</target>
</flag>
为了获取<target>
为123的元素<sample>
的文本,已尝试了几种方法,但均失败了:
//flag[sample='123']/target
//sample[.='123']/../target
//sample[@value='123']/../target/@value
//sample[text()='123']/../target/text()
是否可以捕获元素<target>
的值?
答案 0 :(得分:0)
您需要确定要执行的操作,这与获取文本和获取元素之间有很大的区别。
要查找元素,您至少有3个选项:
从标志中找到目标,该目标具有一个带有123个文本的样本子元素
//flag[./sample[textt()='123']]/target
找到包含123个文本的样本,转到父级并找到目标
//sample[textt()='123']/../target
找到带有文本123的样本,并获得 target 兄弟姐妹
this you need to discover yourself
现在,您具有可以使用的object元素。
如果要输入文本,则需要添加/text()
答案 1 :(得分:0)
您应该使用类似的内容:
//sample[text()='123']/parent::*/target/text()='a test sample'
演示(假设XPath Tester mode of the View Results Tree侦听器):
参考文献:
答案 2 :(得分:0)
谢谢大家,我不知道为什么所有解决方案都失败了;而是使用正则表达式提取器。也许XPath Extractor无法处理这种情况。