Выберите значение из выпадающего списка автозаполнения - PullRequest
0 голосов
/ 01 октября 2018

Я использую cssselector с классом ключей.Но значение не выбрано

browser.findElement(By.cssSelector("input[id='loadingPort']")).sendKeys("Odes", Keys.DOWN, Keys.ENTER);

Я хочу выбрать значение Одесса из выпадающего списка:

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

Я не уверен, как веб-сайт заполняет этот выпадающий список, но, возможно, вы могли бы ввести свой текст и затем выбрать первый вариант, например:

browser.findElement(By.cssSelector("input[id='loadingPort']")).sendKeys("Odes");

browser.findElement(By.cssSelector("input[id='loadingPort']")).findElements(By.tagName("option")).get(0).click()
    /** OR */
browser.findElement(By.cssSelector("input[id='loadingPort']:first-child")).click()

Извините, я не знаком с Javaили cssSelectors ... просто селен.Если вы можете очистить этот код, это сработает, если веб-сайт динамически добавляет параметры в домен.

Еще один, используя xpath: browser.findElement(By.xpath("input[@id='loadingPort']/option[1]")).click()

0 голосов
/ 01 октября 2018

Существует несколько способов обработки выпадающего значения

 - dropdown.selectByVisibleText("Text");
 - dropdown.selectByIndex(2); (Index starts with zero always in list)
 - dropdown.selectByValue(“Text”)

Пример кода:

    Select oSelect = new Select(driver.findElement(By.cssSelector("input[id='loadingPort']")));

// Select option (Odessa(UKR))
    oSelect.selectByVisibleText("Odessa(UKR)"); // Using sleep command so that changes can be noticed
    Thread.sleep(2000);

    // : Select option 'using Index 
    oSelect.selectByIndex(1);
    Thread.sleep(2000);

    //  Print all the options for the selected drop down and select one option of your choice
    // Get the size of the Select element
    List<WebElement> oSize = oSelect.getOptions();
    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 = oSelect.getOptions().get(i).getText();
        // Printing the stored value
        System.out.println(sValue);
        // Putting a check on each option that if any of the option is equal to 'Africa" then select it 
        if(sValue.equals("Odessa(UKR)")){
            oSelect.selectByIndex(i);
            break;
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...