行にテキストが含まれていて、その行のセルをクリックすると、私は言いたい表があります。List WebElementの子を選択 - Java - Selenium WebDriver
私は行のリストを作成しようとしていますが、各行の列を繰り返し、その行にテキストがある場合は、セルをクリックして次のような項目の選択を解除します(明らかに機能しません。単に論理を理解しようとしている)。
// Deselect Pending Quality Review
List<WebElement> parents = driver.findElements(By.cssSelector("tr[type='row']"));
for(WebElement parent : parents)
{
List<WebElement> children = parent.findElements(By.cssSelector("td[class='grdCell']"));
for(WebElement child : children)
{
if (parent.getText().contains("Pending Quality Review") && child.getAttribute("style").contains("visible"))
{
System.out.println("Deselect Pending Quality Review");
child.click();
} //end if
} // end child for loop
} // end for parent element
ここでは、私が扱っているHTMLの例を示します。最初の行には2つの選択ボックスがあり、2つ目の行にはimgタグの示す1つしかありません。
<tr type="row" adr="14" tag="" id="x:1011327536.13:adr:14:tag:">
<td type="cell" adr="0" idx="0" class="grdCell">Cancelled</td>
<td class="ig9a63765d">1</td>
<td class="ig9a63765e">1</td>
<td type="cell" adr="3" idx="3" class="grdCell">
<img id="ctl00_ctl00_ctl00_Main_Main_Main_gridStatusSyncMappings_it3_14_imgSync" src="Images/BlueArrowLeft32x32.png" alt="" style="visibility:visible;"></td>
<td class="ig9a63765f">1</td>
<td class="ig9a637660">1</td>
<td class="grdCell">
<img id="ctl00_ctl00_ctl00_Main_Main_Main_gridStatusSyncMappings_it6_14_imgSync" src="Images/BlueArrowRight32x32.png" alt="" style="visibility:visible;"></td>
<td type="cell" adr="7" idx="7" class="grdCell">Cancelled</td>
<td class="ig9a637661">300020</td>
<td class="ig9a637662">1</td>
<td class="ig9a637663">1</td>
<td class="ig9a637664">1</td>
<td class="ig9a637665"></td>
<td class="ig9a637666">1</td>
<td class="ig9a637667"></td>
</tr>
<tr type="row" adr="15" tag="" id="x:1011327536.13:adr:15:tag:" class="ig_ListAlt igg_ListAlt ">
<td type="cell" adr="0" idx="0" class="grdCell">Pending Quality Review</td>
<td class="ig9a63765d">1</td>
<td wlkd="1" type="cell" idx="2" adr="2" class="ig9a63765e">1</td>
<td wlkd="1" type="cell" adr="3" idx="3" class="grdCell">
<img id="ctl00_ctl00_ctl00_Main_Main_Main_gridStatusSyncMappings_it3_15_imgSync" src="Images/BlueArrowLeft32x32.png" alt="" style="visibility: visible;">
</td>
<td class="ig9a63765f">0</td>
<td class="ig9a637660">0</td>
<td type="cell" adr="6" idx="6" class="grdCell grdCell_CursorDefault grdCell_Gray grdCell"></td>
<td type="cell" adr="7" idx="7" class="grdCell">Pending Quality Review</td>
<td class="ig9a637661">301002</td>
<td wlkd="1" type="cell" idx="9" adr="9" class="ig9a637662">1</td>
<td class="ig9a637663">0</td>
<td class="ig9a637664">1</td>
<td class="ig9a637665"></td>
<td class="ig9a637666">1</td>
<td class="ig9a637667"></td>
</tr>
は、したがって、この例では、私は保留品質レビューの行を選択する必要があることだし、セルのIMGが見える含まれている場合は、それをクリックしてください。
将来、行がキャンセルされた場合は、2番目のオプションのみを選択すると、私は行の途中で何かする必要があるかもしれません。それを行う方法の詳細も参考になります。