4

I want to extract the first value which has the property selected = "selected" using XPath extractor. But it doesn't seem to work for me.

The html which i'm extracting the value from is:

< select id="ddLocation" name="ddLocation" class="DDlocation" size="1"      onchange="jsf.util.chain(this,event,'onLocationChange();,'mojarra.ab(this,event,\'valueChange\',\'@this\',0)')"> <br>
    < option value="43" selected="selected">Pune</option> <br>
    < option value="44">Agra< /option> <br>
    < option value="45">Guntur< /option> <br>
    < option value="46">Kochi< /option> <br>
    < option value="73">Kothrud< /option> <br>
    < option value="153">Ratnagiri< /option> <br>
    < option value="156">Baner< /option>

My XPath query is:

//select[@id="ddLocation"]/option[1]/@value

Is it wrong?
Can anyone suggest me any better / right approach please?

4

2 回答 2

7

您的 xml 格式不正确

它在选项前面有很多空格,并且选择最后没有关闭。

<select id="ddLocation" name="ddLocation" class="DDlocation" size="1" onchange="jsf.util.chain(this,event,'onLocationChange();,'mojarra.ab(this,event,\'valueChange\',\'@this\',0)')">
    <option value="43" selected="selected">Pune </option>
    <option value="44">Agra</option>
    <option value="45">Guntur</option>
    <option value="46">Kochi</option>
    <option value="73">Kothrud</option>
    <option value="153">Ratnagiri</option>
    <option value="156">Baner</option>
</select>

最后,您的 XPATH 将按预期工作。

//select[@id="ddLocation"]/option[1]/@value

它给出的输出为43

编辑:

如果你在 XPATH 下使用,它会根据属性的位置给出结果selected=selected

//select[@id='ddLocation']/option[@selected='selected']/@value

我没有使用 JMeter 进行测试,但正在检查 XMLSPY 上的 XPATH。

于 2012-07-10T07:18:20.407 回答
1

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

并使用下面 Siva 的答案中更精细的 xpath 查询。

于 2012-07-10T10:27:34.777 回答