Html 正则表达式提取特定值<;输入>;标签
我的目标是使用正则表达式从HTML文档中提取具有特定名称的标记的值。守则的有关部分如下:Html 正则表达式提取特定值<;输入>;标签,html,regex,jmeter,Html,Regex,Jmeter,我的目标是使用正则表达式从HTML文档中提取具有特定名称的标记的值。守则的有关部分如下: <!-- hidden datas --> <p class="hidden"> <input type="hidden" name="token" value="6ac2c9b7d56b483ad6b9db051a285637" /> <input type="hidden" name="id_pro
<!-- hidden datas -->
<p class="hidden">
<input type="hidden" name="token" value="6ac2c9b7d56b483ad6b9db051a285637" />
<input type="hidden" name="id_product" value="541" id="product_page_product_id" />
<input type="hidden" name="add" value="1" />
<input type="hidden" name="id_product_attribute" id="idCombination" value="" />
</p>
我需要提取字母数字字符6ac2c9b7d56b483ad6b9db051a285637
不幸的是,除了通过正则表达式,没有其他方法
同样的标记也出现在文档的另一部分中。也许在这段代码中更容易提取
<script type="text/javascript" src="/webshop/js/tools.js"></script>
<script type="text/javascript">
var baseDir = '/webshop/';
var static_token = '6ac2c9b7d56b483ad6b9db051a285637';
var token = '1799f145490151b92137df1493a520cc';
var priceDisplayPrecision = 2;
</script>
var baseDir='/webshop/';
var static_token='6ac2c9b7d56b483ad6b9db051a285637';
var标记='1799f145490151b92137df1493a520cc';
var-priceDisplayPrecision=2;
在第二个示例中,以下正则表达式将捕获令牌:
/var static_token='([0-9a-f]{32})/代码>使用JMeter的正则表达式提取器组件来提取字符串,
表达将是,
static_token \= '(\w+)';
Template : $1$
Match no : 1
这将提取指定变量中的值。JMeter文档中有一个与您想要实现的目标非常匹配的示例:
就你而言:
<input type="hidden" name="token" value="([^"]+)" />
我建议使用以下方法获取它:
添加XPath提取器作为返回该响应的请求的子级
添加一些有意义的内容作为引用名
——它将是一个保存结果的JMeter变量名,即标记
如果响应不符合XHTML,请选中使用Tidy
框
在“XPath查询”输入中使用以下XPath表达式:
如果需要,请将提取的值引用为${token}
有关XPath语言的更多信息,请参阅以下参考资料:
使用正则表达式也可以工作,但是对于复杂的多行HTML,最好使用XPath或提取器。有关说明,请参阅。您可以使用jsoup
()起初我无法理解文档的这一部分,但现在我明白了。谢谢!好的答案是Dmitri t的答案。Regexp不适用于JMeter中的HTML好的答案是Dmitri t的答案。Regexp不适用于HTML好的答案是Dmitri t的答案。Regexp不适用于HTML
//input[@name='token']/@value