我需要从以下代码中提取jsessionid值仅8969424C7F388504711149044AB03FE9
<input type="hidden" name="execution" value="e1s1" />
<input type="hidden" name="_eventId" value="submit" />
<a id="forgotP" href='forgotPassword?service=https%3A%2F%2Fbg-cn-host%3A8443%2Fcloudsolutions%2Fj_spring_cas_security_check%3Bjsessionid%3D8969424C7F388504711149044AB03FE9'>Forgot password?</a>
<input class="btn-submit" name="submit" value="Log In
我尝试了以下选项,但没有运气
//*[starts-with(@href,'forgotPassword')]/substring-after(@href, 'jsessionid%3D')
substring-after(/ @ href,'jsessionid%3D')
//*[@id='forgotP']/contains(substring-after(., 'jsessionid%3D'))
name="(.+)"\stype="hidden"value="(.+)"
需要Xpath和正则表达式
答案 0 :(得分:1)
正确的XPath表达式将是:
substring-after(//a[starts-with(@href,'forgot')]/@href,'jsessionid%3D')
如果您的回答不符合XML / XHTML,请确保&#34;使用Tidy(宽容解析器)&#34;框被选中
您可以使用View Results Tree侦听器针对响应数据测试XPath表达式。
但是我相信你可以做得更轻松。鉴于JSESSIONID只是一个cookie,它应该由HTTP Cookie Manager完美处理,除了已知XPath Extractor是资源密集型的,建议尽可能避免使用它。
将以下行添加到 user.properties 文件(位于JMeter安装的/ bin文件夹下)
CookieManager.save.cookies=true
${COOKIE_JSESSIONID}
变量有关详细信息,请参阅Using the HTTP Cookie Manager指南。
答案 1 :(得分:0)
试试这个Regex,
3Bjsessionid\%3D(\w+)'>Forgot password
或
3Bjsessionid\%3D([0-9A-Z]+)'>Forgot password
假设您在JMeter中知道正则表达式提取器,我不会给出JMeter正则表达式快照。对于Xpath,我认为您的Xpath查询是正确的。