HTML
頁面包含用戶詳細信息表。
我需要刪除用戶。
我可以通過用戶名來選擇行中的第一個元素。
我需要選擇該行上的「刪除」按鈕來刪除該用戶。
的HTML
結構爲:WebDriver Selenium:需要在表格中選擇元素後
<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)列表。在列表中,您可以通過索引獲取元素以檢查用戶並獲取按鈕(這裏是一個類似的代碼,可以執行此操作http://stackoverflow.com/a/14192252) – Guillermo
嗯,這是一個解決方案。你是對的。但我想有一個表達式(Xpath)來完成這項工作。 – Eliyahu
是的,我想也是...類似這樣的東西:// td [contains(text(),'xoxo')/ following-sibling :: td // div [@ class ='removeAccountIcon'] – Guillermo