无法使用 normalize-space(text()) 找到元素
Can't find element using normalize-space(text())
我在使用此 xpath 查找以下元素时遇到问题 //label[normalize-space(text())='F. nacimiento:']
HTML DOM
绿色元素是我要使用上一个表达式定位的元素。我能够找到带有 //label[normalize-space(text())='Servicio Decesos:']
的红色元素和任何其他相同类型的元素。
我尝试使用 //label[text()=' F. nacimiento:']
并且工作正常,但我使用循环和模式 //label[normalize-space(text())=' + foobar + ']
来识别元素的其余部分。
我的猜测是文本字符串中的字符代码与白色 space 或类似字符不同,但我不知道如何检查它。
有没有办法知道 normalize-space 返回的是什么,以便用它来标识元素?
我有不同的模式来识别元素,但我很固执,这是学习新东西的好机会,可以在将来解决类似问题时派上用场。
我按照要求下载了html代码:
这是红色片段
<div class="sis-frame-bg">
<table class="wideBox" align="center" cellpadding="2" cellspacing="0">
<tbody>
<tr>
<th width="20%" align="right">
<label for="DTRIES_CODZONA">
<span class="sis-important">*</span> Código postal:</label>
</th>
<td><input name="nombdato_CODZONA_1" type="text" id="DTRIES_CODZONA" size="8" maxlength="8" onblur="seccionDecesos();" value="" data-regexp="_codigoPostal" autocomplete="off"></td>
</tr>
<tr>
<th width="20%" align="right">
<label for="DTRIES_SERVICOD">
<span class="sis-important">*</span> Servicio decesos:</label>
</th>
<td>
<select name="nombdato_SERVICOD_1" id="DTRIES_SERVICOD" onchange="seccionDescricionServicio();" data-name="Servicio decesos" data-obligatorio="true" data-regexp="_cadena">
<option selected="selected" value="" title="Elegir"> Elegir</option>
</select>
</td>
</tr>
<tr>
<th colspan="2" align="left">
<div id="datosServicioDecesos">
<!-- ASI261 -->
<!-- ASI261 -->
</div>
</th>
</tr>
</tbody>
</table>
</div>
还有绿色片段
<table class="wideBox" cellspacing="0" cellpadding="2" align="center">
<tbody>
<tr>
<th align="right">
<label for="ASEG_FECHNACI">
<span class="sis-important">*</span> F. nacimiento:</label>
</th>
<td>
<input id="ASEG_FECHNACI" name="fechnaci" type="text" maxlength="10" size="12" class="js-popUpCalendar js-dateformat hasDatepicker" onblur="formatoFecha(this);" data-name="FECHA DE NACIMIENTO ASEGURADO" data-obligatorio="true" title="" value="" data-regexp="_fecha" autocomplete="off">
<img class="ui-datepicker-trigger" src="./ico_calendar.png" alt="..." title="...">
</td>
</tr>
</tbody>
</table>
您可以使用下面的 xpath。
//label[normalize-space(.)='* F. nacimiento:']
截图
我在使用此 xpath 查找以下元素时遇到问题 //label[normalize-space(text())='F. nacimiento:']
HTML DOM
绿色元素是我要使用上一个表达式定位的元素。我能够找到带有 //label[normalize-space(text())='Servicio Decesos:']
的红色元素和任何其他相同类型的元素。
我尝试使用 //label[text()=' F. nacimiento:']
并且工作正常,但我使用循环和模式 //label[normalize-space(text())=' + foobar + ']
来识别元素的其余部分。
我的猜测是文本字符串中的字符代码与白色 space 或类似字符不同,但我不知道如何检查它。
有没有办法知道 normalize-space 返回的是什么,以便用它来标识元素?
我有不同的模式来识别元素,但我很固执,这是学习新东西的好机会,可以在将来解决类似问题时派上用场。
我按照要求下载了html代码: 这是红色片段
<div class="sis-frame-bg">
<table class="wideBox" align="center" cellpadding="2" cellspacing="0">
<tbody>
<tr>
<th width="20%" align="right">
<label for="DTRIES_CODZONA">
<span class="sis-important">*</span> Código postal:</label>
</th>
<td><input name="nombdato_CODZONA_1" type="text" id="DTRIES_CODZONA" size="8" maxlength="8" onblur="seccionDecesos();" value="" data-regexp="_codigoPostal" autocomplete="off"></td>
</tr>
<tr>
<th width="20%" align="right">
<label for="DTRIES_SERVICOD">
<span class="sis-important">*</span> Servicio decesos:</label>
</th>
<td>
<select name="nombdato_SERVICOD_1" id="DTRIES_SERVICOD" onchange="seccionDescricionServicio();" data-name="Servicio decesos" data-obligatorio="true" data-regexp="_cadena">
<option selected="selected" value="" title="Elegir"> Elegir</option>
</select>
</td>
</tr>
<tr>
<th colspan="2" align="left">
<div id="datosServicioDecesos">
<!-- ASI261 -->
<!-- ASI261 -->
</div>
</th>
</tr>
</tbody>
</table>
</div>
还有绿色片段
<table class="wideBox" cellspacing="0" cellpadding="2" align="center">
<tbody>
<tr>
<th align="right">
<label for="ASEG_FECHNACI">
<span class="sis-important">*</span> F. nacimiento:</label>
</th>
<td>
<input id="ASEG_FECHNACI" name="fechnaci" type="text" maxlength="10" size="12" class="js-popUpCalendar js-dateformat hasDatepicker" onblur="formatoFecha(this);" data-name="FECHA DE NACIMIENTO ASEGURADO" data-obligatorio="true" title="" value="" data-regexp="_fecha" autocomplete="off">
<img class="ui-datepicker-trigger" src="./ico_calendar.png" alt="..." title="...">
</td>
</tr>
</tbody>
</table>
您可以使用下面的 xpath。
//label[normalize-space(.)='* F. nacimiento:']
截图