2017-01-04 4 views
0

Я не в состоянии выбрать значение в раскрывающемся списке в упомянутом выше коде,Как выбрать значение выпадающего значения в селене?

public class Dropdown { 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     // TODO Auto-generated method stub 
      System.setProperty("webdriver.chrome.driver", "I:/shopclues/demoqa/drivers/chromedriver.exe"); 
      ChromeDriver driver= new ChromeDriver(); 
      driver.get("http://demoqa.com/"); 
      driver.manage().window().maximize(); 
      driver.findElementByLinkText("Registration").click(); 
      driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 
      WebElement country = driver.findElementByXPath("//select[@id='dropdown_7']"); 
      Select dropdown = new Select(country); 
      List<WebElement> options = dropdown.getOptions(); 
      for (WebElement option1 : options) 
      { 
       System.out.println(option1.getText()); 
       if(option1.getText().startsWith("india")) 
       { 
        option1.click(); 
        break; 
       } 

      } 
    } 

} 

Благодаря

ответ

0

на основе gihan's answer here, вы можете выбрать с помощью следующих функций:

ниспадающего .selectByVisibleText (» Индия"); dropdown.selectByIndex (0); dropdown.selectByValue ("Индия");

Для ваших целей первый вариант должен работать нормально.

1

Используйте следующий способ выбора выпадающего меню -

WebElement country = driver.findElement(By.id("dropdown_7")); 
    Select dropdown = new Select(country); 

    dropdown.selectByVisibleText("india"); // pass the text which is visible on site 

    //or 
    dropdown.selectByIndex(1); // pass the index of dropdown value you want to select 

    //or 
    dropdown.selectByValue("your_value"); 

Или изменить код

WebElement country = driver.findElementByXPath("//select[@id='dropdown_7']"); 

в

WebElement country = driver.findElement(By.id("dropdown_7")); 
+0

благодаря братан сейчас его работы, но я хочу знать, почему для каждого не работает? – samkarthick

+0

попробуйте напечатать значение 'option1' в цикле' For Each', и вы увидите проблему. – Paras

+0

вы можете это сделать, но я думаю, что есть проблема в вашем xpath - 'WebElement country = driver.findElementByXPath (" // select [@ id = 'dropdown_7'] ");' Я не видел метод 'findElementByXPath' в java – NarendraR

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