Я автоматизирую задачу с использованием Java и Selenium.Как установить флажок в первом столбце на основе значения во втором столбце таблицы?
Я хочу установить флажок (который находится в первом столбце таблицы) в зависимости от того, соответствует ли значение во втором столбце моему входному значению. Например, в следующем фрагменте кода значение «Магнус» соответствует моему входному значению, поэтому я хочу установить связанный с ним флажок.
<table class="cuesTableBg" width="100%" cellspacing="0" border="0" summary="Find List Table Result">
<tbody>
<tr class="cuesTableBg">
<tr class="cuesTableRowEven">
<tr class="cuesTableRowOdd">
<td align="center">
<input class="content-nogroove" type="checkbox" name="result[1].chked" value="true">
<input type="hidden" value="1c62dd7a-097a-d318-df13-75de31f54cb9" name="result[1].col[0].stringVal">
<input type="hidden" value="Magnus" name="result[1].col[1].stringVal">
</td>
<td align="left">
<a class="cuesTextLink" href="userEdit.do?key=1c62dd7a-097a-d318-df13-75de31f54cb9">Magnus</a>
</td>
<td align="left"></td>
<td align="left">Carlsen</td>
<td align="left"></td>
</tr>
<tr class="cuesTableRowEven">
</tbody>
</table>
Но я не могу этого сделать. В приведенном выше случае, следующие две строки служат цели (как мой входное значение совпадает с этим во втором ряду):
WebElement checkbox = driver.findElement(By.xpath("//input[@type = 'checkbox' and @name = 'result[1].chked']"));
checkbox.click();
Но она не может быть использована в качестве требуемого значения может не всегда быть в второй ряд.
Я попытался следующий блок кода, но безрезультатно:
List<WebElement> rows = driver.findElements(By.xpath("//table[@summary = 'Find List Table Result']//tr"));
for (WebElement row : rows) {
WebElement userID = row.findElement(By.xpath(".//td[1]"));
if(userID.getText() == "Magnus") {
WebElement checkbox = row.findElement(By.xpath(".//input[@type = 'checkbox']"));
checkbox.click();
break;
}
}
Для чего это стоит, XPath текста во второй колонке:
/html/body[@id='mainbody']/table/tbody/tr/td/div[@id='contentautoscroll']/form/table[2]/tbody/tr[3]/td[2]/a
Я не знаю, о CSS Selectors. Это поможет здесь?
Да, CSS селекторы должны помочь вам :) – plsgogame