2016-08-11 56 views
1

我有这样的HTML选择单选按钮中的硒的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 STARKIRON MANROBERT 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

太棒了,完成了!所以,@沙拉布,我如何通过**'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]是单选按钮选项(“TONY STARK”)的位置