【发布时间】:2015-07-12 20:53:09
【问题描述】:
HTML 页面包含用户详细信息表。
我需要删除用户。
我可以通过用户名选择行中的第一个元素。
我需要选择该行上的“删除”按钮来删除该用户。HTML 结构为:
<table id="tblUsersGrid" cellpadding="2">
<thead>
<tbody>
<tr class="aboutMeRow" data-parentid="223">
<tr>
<tr>
...
<tr>
<td class="cell cell_278 cell_NameCell">xoxo</td>
<td class="optionIcon overrideFloat orgIcon cell cell_278 gridCell"></td>
<td class="cell cell_278 gridCell">Custom</td>
<td class="cell cell_278 gridCell">qaadmin</td>
<td class="cell cell_278 gridCell">0</td>
<td class="cell gridCell">
<div class="removeAccountIcon"></div>
<td class="cell gridCell">
<div class="editAccountIcon"></div>
</td>
<td></td>
</tr>
所以我可以通过
轻松选择所需的行driver.findElement(By.xpath("//td[@class='cell_NameCell'][contains(text(),'xoxo')]"))
但是我怎样才能到达该行的removeAccountIcon 元素呢?
我看到很多关于在表格中选择元素的问题,但没有找到解决这个问题的方法。
有没有办法通过CSS 选择器来做到这一点,而不仅仅是Xpath? (我确信有一个Xpath 解决方案)。
【问题讨论】:
-
我知道这不是您真正想要的,但您可以找到该表,然后按行迭代并使用 findElements 获取列列表 (td)。在列表中,您可以按索引获取元素以检查用户并获取按钮(这里有类似的代码来执行此操作stackoverflow.com/a/14192252)
-
嗯,这是一个解决方案。你说的对。但我想只有一个表达式 (Xpath) 可以完成这项工作。
-
是的,我也猜...像这样的: //td[contains(text(),'xoxo')/following-sibling::td//div[@class='removeAccountIcon ']
标签: css selenium xpath selenium-webdriver