Selenium WebDriver - 用于定位表格中单元格旁边的单元格的Xpath(或任何内容)?

时间:2015-07-02 17:34:24

标签: selenium xpath selenium-webdriver

我有这张桌子: table

这是一张巨大的表格,所以我在这里只包含相关代码。 正如你所看到的,在表格中我有很多带有红色x的标签:

<td>
<img id="imgPartStatus" title="Part Not Found/Part Unavailable" src="../../../App_Themes/Theme/Images/red-x.gif" alt="Part Not Found/Part Unavailable">
</td>

所以我试图做的是有一些代码(不是问题的一部分)贯穿表中的所有td,当它找到这样的时候(绿色检查图标) )...

<td>
<img id="imgPartStatus" title="Part Available at Gateway" src="../../../App_Themes/Theme/Images/grn_chk.gif" alt="Part Available at Gateway">
</td>

...我希望它选中它旁边的复选框(在x右侧可见或检查图标)。幸运的是,复选框和红色/绿色图标位于相同的tr中,这样可以使事情变得更容易。

这是绿色图标旁边的复选框的代码:

<td>
<input id="chkSelectPart" name="$chkSelectPart" onclick="chkNCJL(this,'True');" type="checkbox">
</td>

这里的问题是:

什么是&#34; JUMP&#34;到td的下一个(右边)的td? PS。它不必是一个xpath。但是因为我在找到它之后会点击它,所以xpath应该是好的。 我仍然在努力理解xpath中的关系(前面的兄弟姐妹等)。

感谢您查看我的问题。

2 个答案:

答案 0 :(得分:2)

您可以使用XPath表达式一次性完成:

//tr[starts-with(td/img[@id="imgPartStatus"]/@title, "Part Available")]/td/input[contains(@id, "chkSelectPart")]

在这里,我们基本上找到tr标题以img开头的Part Available,然后位于trinput id在里面包含“chkSelectPart”。

答案 1 :(得分:0)

您可以使用以下其中一项

//td/img[@alt='Part Available at Gateway']//following::input[@type='checkbox']


//td[img[@alt='Part Available at Gateway']]//following-sibling::td/input