2012-08-03 87 views
3
<table id="Content_Content_Content_ctlCaseInfo_rdochldplcm" class="fltLeft"> 
     <tr> 
      <td><input type="radio" id="Content_Content_Content_ctlCaseInfo_rdochldplcm_0" name="ctl00$ctl00$ctl00$Content$Content$Content$ctlCaseInfo$rdochldplcm" value="0" /><label for="Content_Content_Content_ctlCaseInfo_rdochldplcm_0">No</label></td><td><input type="radio" id="Content_Content_Content_ctlCaseInfo_rdochldplcm_1" name="ctl00$ctl00$ctl00$Content$Content$Content$ctlCaseInfo$rdochldplcm" value="1" /><label for="Content_Content_Content_ctlCaseInfo_rdochldplcm_1">Yes</label></td> 
     </tr> 
    </table> 

當我嘗試 driver.FindElement(By.Id( 「Content_Content_Content_ctlCaseInfo_rdochldplcm」))點擊(); 它點擊 「是」 當我嘗試driver.FindElement(By.Id( 「Content_Content_Content_ctlCaseInfo_rdochldplcm_0」))點擊()。 OR driver.FindElement(By.Id( 「Content_Content_Content_ctlCaseInfo_rdochldplcm_1」))點擊()。 沒有任何反應,沒有單選按鈕被選中。問題在硒選擇單選按鈕的webdriver

請建議的方式來處理這種情況..thanks了很多!

回答

0

嘗試[0]和[1]而不是下劃線。

+0

沒有工作ed得到了我的期待 OpenQA.Selenium.NoSuchElementException:無法找到元素。請高手..幫忙.. – user1575134 2012-08-04 17:14:00

3

通過XPath單擊單選按鈕可能會更好。
在特定情況下,XPath來:

是 - 單選按鈕:

"//input[contains(@id, 'rdochldplcm') and contains(@value, 1)]" 

否 - 單選按鈕:

"//input[contains(@id, 'rdochldplcm') and contains(@value, 0)]" 

在這種情況下,如果你想點擊'是'單選按鈕,你可以這樣做:

string yesRadioButtonXPath = "//input[contains(@id, 'rdochldplcm') and contains(@value, 1)]" 
IWebElement yesRadioButton = driver.FindElement(By.XPath(yesRadioButtonXPath)); 
yesRadioButton.Click(); 

爲「否」單選按鈕,你可以使用這個:

string noRadioButtonXPath = "//input[contains(@id, 'rdochldplcm') and contains(@value, 0)]" 
IWebElement noRadioButton = driver.FindElement(By.XPath(noRadioButtonXPath)); 
yesRadioButton.Click(); 

由於您使用的表,可能有機會與XPath可能會返回一個以上元件。在這種情況下,您需要使用不同的方法來排列元素,但對於您要查找的內容,此方法應該可行。

1

這個解決我的問題perfeclty

我有一個網頁,其中表示「是」,「否」和「無應答」 我是想通過ID,讓他們6組,每組18個廣播按鈕,但它是隨機的由應用程序 但使用名稱和值標籤使其工作。

收音機都基本上定義是這樣的:

輸入值=「2」類=「X-型無線電X-型場」自動填充=‘關閉’ID =‘randID_13578’名稱=」 emailNotifiyOptionAllow 「類型= 」無線電「>

和每個i打開此頁面ID是不同的時間,以便使用

」 //輸入[含有(@name, 'emailNotifyOptionAllow')和含有(@值,1)]「

解決它。

感謝名單

1

使用此:

//First get the list of values from the radio button 

List <WebElement> elements = driver.findElements(By.cssSelector("table[id='Content_Content_Content_ctlCaseInfo_rdochldplcm'] > td")); 

WebElement value; 

//use loop for searching the particular element 

for(WebElement element : elements){ 

//Getting the value of the element 
value = element.findElement(By.cssSelector("label")).getText(); 

//condition to click on the element 
    if(value.trim().equals("No")){ //Here value is hard coded. You can take from excel sheet also 

    // If condition satisfies, it will click on the element 

    element.findElement(By.cssSelector("input").click(); 
} 

} 

這可以作爲一個共同的功能也。

0

與下面給出CSS試試你的代碼:

第1步: 提供HTML一塊我們可以推導出單選按鈕的

css=#Content_Content_Content_ctlCaseInfo_rdochldplcm input 

步驟2中的CSS:上

點擊使用Web驅動程序代碼的單選按鈕

driver.findElement 
    (By.cssSelector("#Content_Content_Content_ctlCaseInfo_rdochldplcm input")) 
     .click();