Раскрывающийся список с множественным выбором

Я пишу код для множественного выбора с использованием селена (java), где мне нужно выполнить следующую задачу:

  1. выберите несколько вариантов в раскрывающемся списке
  2. нажать кнопку first selected, которая распечатает первый выбранный вариант из раскрывающегося списка.
  3. Чтобы нажать кнопку, выберите все, что распечатает все выбранные параметры по порядку.

У меня есть этот код, который возвращает мне значение undefined в результате выполнения второй задачи.

public class MultipleSlectList {

    public static WebDriver driver ;

    @BeforeTest
    public void startbrowser () throws Exception {
        System.out.println("launching browser");
        System.setProperty("webdriver.gecko.driver", "H:\\Selenium3\\geckodriver-v0.19.1-win32\\geckodriver.exe");
        driver = new FirefoxDriver();
        driver.get("http://www.seleniumeasy.com/test/basic-select-dropdown-demo.html");

    }

    @Test

    public void selectlist () throws Exception {

        WebElement ele1 = driver.findElement(By.id("multi-select"));
        Select se= new Select(ele1);
        se.selectByValue("New Jersey");
        Thread.sleep(2000);
        se.selectByValue("Texas");
        Thread.sleep(2000);
        se.selectByValue("Florida");
        Thread.sleep(2000);
        //Thread.sleep(10000);
        WebElement btn1= driver.findElement(By.id("printMe"));
        btn1.click(); // it is supposed to return New Jersy 
        WebElement firstOption = se.getFirstSelectedOption();
        System.out.println("The First selected option is::" +firstOption.getText());
        List <WebElement> oSize = se.getAllSelectedOptions();

        int iListSize = oSize.size();
        // Setting up the loop to print all the options
        for (int i = 0; i < iListSize; i++)
        {
            // Storing the value of the option  
            String sValue = oSize.get(i).getText();
            // Printing the stored value
            System.out.println(sValue);
        }
    }
}

Пожалуйста, помогите мне продолжить.

Я тоже пробовал с jquery, но безуспешно. Результат такой же, как "undefined" в обоих случаях.

Спасибо !


person shalini    schedule 07.12.2017    source источник


Ответы (1)


Шаги, чтобы выбрать все варианты раскрывающегося списка:

  • Найдите SELECT WebElement по webdriver.
  • Создать класс Select, который используется для работы с раскрывающимся списком.
  • Получить список всех опций в раскрывающемся списке.
  • Прокрутите список опций, получите значение каждой опции и используйте
  • Select.selectByValue (optionValue), чтобы выбрать его.
  • Затем была выбрана вся выпадающая опция.

В статье ниже приведен пример кода для реализации вышеуказанного сценария.

http://www.dev2qa.com/select-dropdown-list-selenium-webdriver/

person karthik selvaraj    schedule 07.12.2017
comment
Привет, Картик ... спасибо за ответ ... проблема в том, что я могу выбрать значения с помощью кода, но когда я нажимаю кнопку с помощью кода, он не возвращает правильный результат. Правильный, согласно моему коду, должен быть «New Jersy», но он возвращает «undefined». из моего кода System.out.println (Первый выбранный вариант - :: + firstOption.getText ()); вернуть Флорида ... WebElement btn1 = driver.findElement (By.id (printMe)); btn1.click (); этот отпечаток не определен на веб-странице - person shalini; 07.12.2017
comment
@shalini - Я использовал Firefox для тестирования пользовательского кода. похоже, работает правильно. Эта проблема возникает, возможно, вы отключили javascript. Пожалуйста, подтвердите, что вы включили JavaScript. - person karthik selvaraj; 08.12.2017
comment
javascript включен. Какую версию firefox вы используете? я использую Firefox 57 - person shalini; 11.12.2017
comment
@shalini - я использую firefox33 - person karthik selvaraj; 11.12.2017
comment
@shalini - вам это пригодилось? - person karthik selvaraj; 15.12.2017