2016-08-11 4 views
1

У меня есть этот HTMLВыбор радио кнопки в Selenium WebDriver [C#]

<div class="Radio"> 
<label> 
    <input class id="checkbox" name="category" type="radio" value="1"> 
    <strong> TONY STARK </strong> 
</label> 

<label> 
    <input class id="checkbox" name="category" type="radio" value="2"> 
    <strong> IRON MAN </strong> 
</label> 

<label> 
    <input class id="checkbox" name="category" type="radio" value="3"> 
    <strong> ROBERT DOWNEY </strong> 
</label> 

нужно выбрать радиокнопки на основе TONY STARK, IRON MAN, ROBERT DOWNEY как пользователь передает его в качестве гибкого параметра

I попробовал это, но любой другой простой способ определенно поможет мне!

driver.FindElement(By.Id("checkbox")); 
for(WebElement radiobutton: radiobuttons) 
{ 
    if(radiobutton.getAttribute("value").equals("TONY STARK")) 
    radiobutton.click(); 
} 

ответ

0

Вы должны попробовать использовать Xpath, чтобы получить кнопку одного радио и избежать зацикливания, как показано ниже: -

string Xpath = ".//input[following-sibling::strong[contains(.,'TONY STARK')]]"; 

Или

string Xpath = ".//label[contains(.,'TONY STARK')]/input"; 

Используйте любой один из этих Xpath найти радио в качестве:

var radio = driver.FindElement(By.Xpath(Xpath)); 
radio.Click(); 
+0

Потрясающих, что получилось! Итак, @Saurabh, как мне найти текст ** 'value' **? – cashanzlo

+0

Извините, но я не понял, что вы спрашиваете? По какому значению вы хотите найти текст? –

2

Вы можете использовать xpath для этого. Попробуйте ниже XPath .//label[contains(text(),'TONY STARK')]/input[@id='checbox']

0

Определите радиоприемник на использовании XPath с индексом

IWebElement radioButton = driver.FindElement(By.XPath("//*[@type='radio'][1]"); 
radioButton.Click(); 

где:

Звездочка * означает символ подстановки.

[1] является положением опций кнопки радио ("Тони Старк")

Смежные вопросы