HTML:
<table>
<tbody>
<tr><td class = "textAlignCenter" id = "clientDocTypeSelection"><input class = "marginL10" name = "clientRadio" type = "radio"></td><td id = "clientDocTypeDescription"> Bike </td></tr>
<tr><td class = "textAlignCenter" id = "clientDocTypeSelection"><input class = "marginL10" name = "clientRadio" type = "radio"></td><td id = "clientDocTypeDescription"> Car </td></tr>
</tbody>
</table>
Найдите td
с искомым текстом следующим образом:
tds = driver.find_elements_by_xpath("//td[@class='textAlignCenter']")
for td in tds:
if td.text == 'Bike':
radio_input = td.find_element_by_xpath(".//input[@type='radio']")
Я не думаю, что вам потребуется много усилий, чтобы перевести код на Java.
Чтобы click()
на радио-кнопке с текстом как Велосипед, вы можете использовать одну из следующих стратегий xpath на основе локатора:
Использование Java и normalize-space()
:
driver.findElement(By.xpath("//td[@id='clientDocTypeDescription' and normalize-space()='Bike']//preceding::td[1]/input")).click();
Использование Java и contains()
:
driver.findElement(By.xpath("//td[contains(., 'Bike')]//preceding::td[1]/input")).click();
В идеале для click()
на элементе вам нужно вызвать WebDriverWait для elementToBeClickable()
, и вы можете использовать одну из следующих стратегий локатора:
Использование Java и normalize-space()
:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//td[@id='clientDocTypeDescription' and normalize-space()='Bike']//preceding::td[1]/input"))).click();
Использование Java и contains()
:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//td[contains(., 'Bike')]//preceding::td[1]/input"))).click();
Спасибо за предложение, но по моему требованию я действительно не знаю номер индекса td велосипеда, тогда как я выберу переключатель
@SoumyaRanjanDas Требуемый <input>
всегда будет иметь индекс 1. Даже удаление индекса должно работать без проблем.
Большое вам спасибо, вы действительно помогли ... ценю вас ... большое спасибо, все работает отлично
искать решение в java