Подтвердить что ты не робот

Как использовать список выбора в селене?

Я пытаюсь выбрать элемент из списка выбора в селене, используя java с синтаксисом на основе WebDriver.

У меня есть список выбора

    elements = driver.findElements(By.xpath("//form[@action='inquiry/']/p/select[@name='myselect']"));
    if (elements.size() == 0) {
        return false;
    }
    if (guests != null) {
        //what do I do here?
    }

Как это сделать?

4b9b3361

Ответ 1

WebElement select = driver.findElement(By.name("myselect"));
Select dropDown = new Select(select);           
String selected = dropDown.getFirstSelectedOption().getText();
if(selected.equals(valueToSelect)){
    //already selected; 
    //do stuff
}
List<WebElement> Options = dropDown.getOptions();
for(WebElement option:Options){
    if(option.getText().equals(valueToSelect)) {
      option.click(); //select option here;       
    }               
}

Если это медленнее, рассмотрите что-то вроде

dropDown.selectByValue(value);
or

dropDown.selectByVisibleText(text);

Ответ 2

Небольшая заметка, которая относится к Java:

В моем случае, когда я писал тест в соответствии с примером @nilesh, я получил странную ошибку, что конструктор недействителен. Мой импорт:

import org.openqa.jetty.html.Select;

Если у вас похожие ошибки, вы должны исправить этот импорт:

import org.openqa.selenium.support.ui.Select;

Если вы используете этот второй импорт, все будет работать.

Ответ 3

element = driver.findElements(By.xpath("//form[@action='inquiry/']/p/select[@name='myselect']/option[*** your criteria ***]"));
if (element != null) {
    element.click();
}

найдите параметр, а затем click он

Ответ 4

Попробуйте сделать это следующим образом:

//метод для выбора элемента из раскрывающегося списка

public void selectDropDown (String Value) {

    webElement findDropDown=driver.findElements(By.id="SelectDropDowm");
    wait.until(ExpectedConditions.visibilityOf(findDropDown));
    super.highlightElement(findDropDown);
    new Select(findDropDown).selectByVisibleText(Value);
}

//метод выделения элемента

public void highlightElement (элемент WebElement) {

    for (int i = 0; i < 2; i++) {

        JavascriptExecutor js = (JavascriptExecutor) this.getDriver();
        js.executeScript(
                "arguments[0].setAttribute('style', arguments[1]);",
                element, "color: yellow; border: 3px solid yellow;");
        js.executeScript(
                "arguments[0].setAttribute('style', arguments[1]);",
                element, "");

    }

}