51Testing软件测试论坛

标题: 多输入框情况下,定位元素不知如何定位到第二行输入框 [打印本页]

作者: OverTimeDog    时间: 2015-10-13 17:12
标题: 多输入框情况下,定位元素不知如何定位到第二行输入框
<tbody>
<tr f-id="100237" data-id="1001818">
<th>护发</th>
<td>
<input class="form-control" type="text" cmsg="输入值不能小于前一个配置项" custom="e-more-than-prev" invalid="请输入非负整数" pattern="^\d*$" value="" data-name="组0" data-id="0">
</td>
<td>
<input class="form-control" type="text" cmsg="输入值不能小于前一个配置项" custom="e-more-than-prev" invalid="请输入非负整数" pattern="^\d*$" value="" data-name="组1" data-id="1">
</td>
<td>
<input class="form-control" type="text" cmsg="输入值不能小于前一个配置项" custom="e-more-than-prev" invalid="请输入非负整数" pattern="^\d*$" value="" data-name="组2" data-id="2">
</td>
<td>
<input class="form-control" type="text" cmsg="输入值不能小于前一个配置项" custom="e-more-than-prev" invalid="请输入非负整数" pattern="^\d*$" value="" data-name="组3" data-id="3">
</td>
<td>
<input class="form-control" type="text" cmsg="输入值不能小于前一个配置项" custom="e-more-than-prev" invalid="请输入非负整数" pattern="^\d*$" value="" data-name="组4" data-id="4">
</td>
</tr>
<tr f-id="100237" data-id="1001815">
<th>洗涤</th>
<td>
<input class="form-control" type="text" cmsg="输入值不能小于前一个配置项" custom="e-more-than-prev" invalid="请输入非负整数" pattern="^\d*$" value="" data-name="组0" data-id="0">
</td>
<td>
<input class="form-control" type="text" cmsg="输入值不能小于前一个配置项" custom="e-more-than-prev" invalid="请输入非负整数" pattern="^\d*$" value="" data-name="组1" data-id="1">
</td>
<td>
<input class="form-control" type="text" cmsg="输入值不能小于前一个配置项" custom="e-more-than-prev" invalid="请输入非负整数" pattern="^\d*$" value="" data-name="组2" data-id="2">
</td>
<td>
<input class="form-control" type="text" cmsg="输入值不能小于前一个配置项" custom="e-more-than-prev" invalid="请输入非负整数" pattern="^\d*$" value="" data-name="组3" data-id="3">
</td>
<td>
<input class="form-control" type="text" cmsg="输入值不能小于前一个配置项" custom="e-more-than-prev" invalid="请输入非负整数" pattern="^\d*$" value="" data-name="组4" data-id="4">
</td>
</tr>

这种每行有5个输入框,一共两行,不知道如何定位到第二行
我通过By.xpath"//input[(@data-id='0')]"能定位到第一行的所有输入框,求助大神们如何定位到第二行!已经试了好多方法都不行!
作者: 踏雪飞狐    时间: 2015-10-13 17:27
xpath=//tbody/tr[2]/td[1] 这样就定位到了第二行的第一个输入框了,不行的话就在tr那里加个属性肯定行xpath=//tbody/tr[@data-id='1001815']/td[1]
作者: OverTimeDog    时间: 2015-10-13 19:31
踏雪飞狐 发表于 2015-10-13 17:27
xpath=//tbody/tr[2]/td[1] 这样就定位到了第二行的第一个输入框了,不行的话就在tr那里加个属性肯定行xpat ...

并不行啊大神。。我这么写的driver.findElement(By.xpath("//tbody/tr[@data-id='1001815']/td[1]")).sendKeys(new String[] {"7"});
没有报错,但是第二行的第一个也并没有填上7
作者: 踏雪飞狐    时间: 2015-10-13 20:04
[attach]97856[/attach]你在selenium按照我截图的方法,点击那个find按钮,如果定位到第二行会闪黄色,说明成功了,这种定位是没问题的。
作者: OverTimeDog    时间: 2015-10-13 20:11
OverTimeDog 发表于 2015-10-13 19:31
并不行啊大神。。我这么写的driver.findElement(By.xpath("//tbody/tr[@data-id='1001815']/td[1]")).sen ...

已经解决了 谢谢大神给我的思路,最后是这么写的:
driver.findElement(By.xpath("//tbody/tr[@data-id='1001818']/td/input[@data-id= "+i+"]")).sendKeys(new String[] {"8"});




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2