这里我想填写输入字段,但无法通过Xpath访问它... Plz帮帮我..
而且守则如下......
<table class="detailList" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="labelCol">
<div id="div1">
<div class="pbSubsection">
<table class="detailList" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="data2Col" colspan="2">
<span style="font-Size:12px;">
Process Name
</span>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</td>
<td style="text-align:left;" class="data2Col">
<div id=div2">
<div class="pbSubsection">
<table class="detailList" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="data2Col" colspan="2">
<div id="div3" class="requiredInput">
<div id="div4" class="requiredBlock"></div>
<input name="pName" style="width:50%;" type="text">
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</td>
</tr>
</tbody>
</table>
我在尝试
WebElement ele = driver.findElement(By.xpath(“// span [text()='Process Name'] / preceding :: td / div / input [@ type ='text']”));
ele.sendKeys(“PM 001”);
但在此之前,我知道它的错误.. Plz帮我解决这个问题.......
这里输入和div id的name属性值将动态改变...
所以我试图通过标签和前面的输入标签找到...
提前致谢
2 回答
你的XPath是完全错误的 .
你是追求的 .
如果
input
的name
没有改变,你可以通过以下方式获得:你的XPath只是因为
span
在"Process Name"周围有一个 lot 的whitespacing而在第一个障碍中失败,所以在比较之前使用normalize-space
强制它从文本中去掉空格 .你也会在下一站摔倒,
preceding
你尽可能地去了span
's level here, it',在它首先出现之前's nothing ' .// span [normalize-space()='Process Name'] // ancestor :: tr // div //输入[@type ='text']