我在HTML回复中有以下文字:
<input type="hidden" name="test" value="testValue">
我需要从上面的输入标签中提取值 我已经尝试了regexp和xpath提取器,但两者都不适用于我:
正则表达式
input\s*type="hidden"\s*name="test"\s*value="(.+)"\s*>
xpath查询
//input[@name="test"]/@value
上述xpath在Xpath断言侦听器.. "No node matched"
上给出错误。
我尝试了很多并得出结论,只有当我将它用作//input[@name]
时,xpath才有效。
目前我正在尝试添加实际名称,因此会出现错误.. "No node matched"
。
有人可以建议我如何解决上述问题吗?
答案 0 :(得分:2)
请看一下我之前的回答:
https://stackoverflow.com/a/11452267/169277
您的相关部分将是第3步:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Element;
String html = prev.getResponseDataAsString(); // get response from your sampler
Document doc = Jsoup.parse(html);
Element inputElement = doc.select("input[name=test]").first();
String inputValue = inputElement.attr("value");
vars.put("inputTextValue", inputValue);
<强>更新强>
所以你不要纠结于我创建的代码jMeter后处理器名为Html Extractor这里是github网址:
答案 1 :(得分:0)
由于您使用XPath Extractor解析HTML(而非XML)响应,请确保使用Tidy(容忍解析器)选项已检查(在XPath Extractor's control panel中)。
您的xpath查询看起来很好,请检查上面提到的选项然后重试。