2013-02-13 28 views
7

में उपयोगकर्ता इनपुट के आधार पर रेडियो बटन का चयन करना मैं उपयोगकर्ता इनपुट के आधार पर एक रेडियो बटन चुनने में सक्षम होना चाहता हूं। इस रेडियो बटन में एक ही नाम के साथ कई विकल्प हैं।सेलेनियम वेबड्राइवर

<th class="radio"> 
<td> 
    <label for="form-1-input-3"> 
    <input id="form-1-input-3" type="radio" checked="" value="true" name="enabled"> 
    Enabled 
    </label> 
    <label for="form-1-input-4"> 
    <input id="form-1-input-4" type="radio" value="false" name="enabled"> 
    Disabled 
    </label> 

तो "सक्षम" स्ट्रिंग के रूप पारित कर दिया है, मैं और पहला रेडियो बटन दिखाई दे रहे पाठ है, सक्षम चयन करने के लिए सक्षम होना चाहिए अगर "अक्षम" स्ट्रिंग के रूप पारित कर दिया है, मैं करने के लिए सक्षम होना चाहिए रेडियो बटन का चयन करें जिसमें दृश्यमान टेक्स्ट, अक्षम है।

मुझे रेडियो बटन के नाम के बाद से कठिनाई हो रही है। नीचे कोड Xpath के लिए और ऑपरेटर के साथ तत्व खोजने में विफल रहता है। क्या किसी ने इससे पहले सामना किया है और समाधान मिला है?

String enableRadioButtonXPath = "//input[contains(@id,'form-') and contains(@value, 'enabled')]"; 
String enableRadioButtonOption = "enabled"; 
String disableRadioButtonOption = "disabled"; 

WebElement enableRadioButton = webdriver1.findElement(By.name(enableRadioButtonOption)); 
enableRadioButton.click(); 
+0

दो रेडियो बटनों का 'आईडी' मान अलग है तो आप आईडी के लिए क्यों नहीं जा सकते हैं। क्या कोई विशिष्ट कारण है? रेडियो बटन के लिए – Manigandan

+0

आईडी गतिशील रूप से जेनरेट की गई है, इसलिए आईडी – user1886649

उत्तर

9

यह तर्क आपके लिए उपयोगी हो सकता है।

दूसरा रेडियो बटन पाठ को निष्क्रिय

driver.findElement(By.xpath("//label[contains(.,'Disable')]/input")).click(); 
+0

द्वारा पता नहीं लगाया जा सकता है यह तर्क छोटा और काम करता है। – user1886649

4

है जो चयन के लिए लोकेटर

driver.findElement(By.xpath("//label[contains(.,'Enable')]/input")).click(); 

नीचे पहला रेडियो बटन का उपयोग करें का चयन करने के लिए हो सकता है कि यह मदद कर सकता है:

public void selectByName (final WebDriver driver, final String status) { 
    final List<WebElement> radios = driver.findElements(By.name("enabled")); 

    for (WebElement radio : radios) { 
     if (radio.getText().equals(status)) { 
      radio.click(); 
     } 
    } 
} 
1

प्राप्त करें उपयोगकर्ता इनपुट और एक चर के लिए असाइन करें सक्षम Usrinput

List<WebElement> radiobuttons = driver.findElements(By.name("radiobuttonname")); 
    for(WebElement radiobutton: radiobuttons) { 

    if(radiobutton.getAttribute("value").equals("Usrinput")) 
     radiobutton.click(); 
} 

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^