2016-08-11 88 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」)的位置

相關問題