0

我在 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 Assertion Listener 处给出错误.. "No node matched"

我尝试了很多并得出结论,只有当我将 xpath 用作//input[@name].

目前我正在尝试添加一个实际名称,它给出了错误.. "No node matched"

谁能建议我如何解决上述问题?

4

2 回答 2

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);

更新

所以你不要纠结于我创建的名为 Html Extractor 的 jMeter 后处理器的代码,这里是 github url:

https://github.com/c0mrade/Html-Extractor

于 2012-07-13T09:19:33.227 回答
0

由于您使用 XPath Extractor 来解析 HTML(不是 XML)响应,因此请确保选中Use Tidy(容错解析器)选项(在XPath Extractor 的控制面板中)。

您的 xpath 查询看起来不错,请检查上面提到的选项,然后重试。

于 2012-07-13T09:45:46.357 回答