我正在使用JMeter,我想从响应中提取包含特定值的行中列的值:
具体来说,我希望得到包含 677777 的行,并为该行获取列 dv-col dv-col-type-enum dv-col-task-state ,在此特定情况下打开。
尝试了几个regexps但尚未成功,所以欢迎任何帮助或线索。
<!DOCTYPE html>
<html lang="en">
<head></head>
<body class="bootstrap env-dlt">
<div id="main-container" class="container-fluid">
<div id="main-header" class="header"></div>
<div class="section">
<div class="dv-filters large-content"></div>
<div class="dv-container large-content">
<table class="table table-striped table-bordered table-condensed">
<thead></thead>
<tbody class="taskList">
<tr>..</tr>
<tr>..</tr>
<tr>..</tr>
<tr>
<td class="dv-col dv-col-type-string dv-col-task-panel"></td>
<td class="dv-col dv-col-type-string dv-col-task-phase"></td>
<td class="dv-col dv-col-type-long dv-col-task-proposal_reference">
<a href="/presentation/workflow/tasks/111111/detail.html">
677777
</a>
</td>
<td class="dv-col dv-col-type-long dv-col-task-proposal_acronym"></td>
<td class="dv-col dv-col-type-enum dv-col-task-state">
Open
</td>
<td class="dv-col dv-col-type-long dv-col-task-owner"></td>
<td class="dv-col dv-col-type-date dv-col-task-deadline"></td>
<td class="dv-col dv-col-type-double dv-col-task-score"></td>
<td class="dv-col dv-col-type-action"></td>
</tr>
<tr>..</tr>
<tr>..</tr>
<tr>..</tr>
Xpath可能是另一种选择吗?
由于
答案 0 :(得分:3)
获得所需结果的xpath是:
//tr[td/a[contains(text(),"677777")]]/td[@class="dv-col dv-col-type-enum dv-col-task-state"]/text()
首先找到包含<tr>
文本()包含或等于677777的<td>
的{{1}},然后找到<a>
标签{ {1}}是目标<td>
下的“dv-col dv-col-type-enum dv-col-task-state”
答案 1 :(得分:2)
我想得到包含677777的行
使用XPath(选择整个行节点):
//tr[*=677777]
获取@class
属性内容的列数据测试:
//tr[*=677777]/td[@class[contains(.,"dv-col-task-state") and contains(.,"dv-col-type-enum") ]]
(假设您没有或不关心匹配包含这些类名的类。例如:dv-col-task-state-something
。如果这是一个问题,您需要连接并匹配class属性中的空格以确保它们代表各个类名称