2017-02-21 28 views
0

Тестирование firefox с помощью Java через Eclipse IDE. Ниже приведен HTML-код с веб-сайта я пытаюсь тест:Selenium Выпадающий список не работает

<td class="selectCommandHolder"> 
<select id="MainContent_DropDownQueryField" name="ctl00$MainContent$DropDownQueryField" aria-invalid="false"> 
<option value="ICAO" selected="selected"> ICAO </option> 
<option value="IATA"> IATA </option> 
<option value="Airfields.Name"> Name </option> 
<option value="City"> City </option> 
<option value="States.Name"> State </option> 
</select> 
</td> 

вариант по умолчанию является первым «ИКАО». Пытаясь провести мой тест, выберите 2-й «ИАТА» через значение. Селен код Java ниже:

WebElement searchOption = driver.findElement(By.id("MainContent_DropDownQueryField")); 

    Select searchIATA = new Select(searchOption); 

    WebElement selected_value = searchIATA.getFirstSelectedOption(); 
    System.out.println("Selected values is "+ selected_value.getText()); 

    Thread.sleep(1000); 
    searchIATA.selectByValue("IATA"); 

    if (searchIATA.getFirstSelectedOption().getText().trim().equals("IATA")){ 
     System.out.println("succesfully selected IATA."); 
    } else{ 
     System.out.println("selected value is not IATA, it is:" + selected_value.getText()); 
    } 

По некоторым причинам, я не могу выбрать ИАТА, хотя я считаю, я правильно пытаться предназначаться его. Мой вывод консоли выглядит следующим образом:

1487691940734 Marionette INFO sendAsync 162acaca-70ac-8e4f-96ff-1b3bd1a5c1ef 
1487691940749 Marionette INFO sendAsync 162acaca-70ac-8e4f-96ff-1b3bd1a5c1ef 
1487691940760 Marionette INFO sendAsync 162acaca-70ac-8e4f-96ff-1b3bd1a5c1ef 
1487691940769 Marionette INFO sendAsync 162acaca-70ac-8e4f-96ff-1b3bd1a5c1ef 
1487691940777 Marionette INFO sendAsync 162acaca-70ac-8e4f-96ff-1b3bd1a5c1ef 
Selected values is ICAO 
1487691941789 Marionette INFO sendAsync 162acaca-70ac-8e4f-96ff-1b3bd1a5c1ef 
1487691941795 Marionette INFO sendAsync 162acaca-70ac-8e4f-96ff-1b3bd1a5c1ef 
1487691941801 Marionette INFO sendAsync 162acaca-70ac-8e4f-96ff-1b3bd1a5c1ef 
1487691941822 Marionette INFO sendAsync 162acaca-70ac-8e4f-96ff-1b3bd1a5c1ef 
1487691941829 Marionette INFO sendAsync 162acaca-70ac-8e4f-96ff-1b3bd1a5c1ef 
Selected values is not IATA, it is: ICAO 

Я могу напечатать «allSelectedOptions», и это показывает список «значений опций» выше. Что мне здесь не хватает?

ответ

2

я вещь, есть какая-то ошибка в коде, вы проверяете старое значение в if condition Также есть белое пространство в вашем ниспадающего значение, так что не соответствие с string

Изменить код, как показано ниже, и пытаясь угадать

searchIATA.selectByValue("IATA"); 
if (searchIATA.getFirstSelectedOption().getText().trim().equals("IATA")) 
{ 
    System.out.println("Succesfully selected IATA."); 
} 
    else 
    { 
     System.out.println("Selected values is not IATA, it is: "+ selected_value.getText()); 
    } 

Обновленный Полный код

WebElement searchOption = driver.findElement(By.id("MainContent_DropDownQueryField")); 

    Select searchIATA = new Select(searchOption); 

    WebElement selected_value = searchIATA.getFirstSelectedOption(); 
    System.out.println("Selected values is "+ selected_value.getText()); 

    Thread.sleep(2500); 
    searchIATA.selectByValue("IATA"); 
    Thread.sleep(2500); 
    System.out.println(searchIATA.getFirstSelectedOption().getText()); 

    if (searchIATA.getFirstSelectedOption().getText().trim().equals("IATA")) 
    { 
     System.out.println("Succesfully selected IATA."); 
    } 
    else 
    { 
     System.out.println("Selected values is not IATA, it is: "+ selected_value.getText()); 
    } 
} 
+0

Я попробовал это, до сих пор й е же продукция: ИКАО. Обновлено мое оригинальное сообщение, чтобы включить этот код. К сожалению, нет прогресса – NewProgrammer686

+0

Вы видите измененное значение выпадающего списка на веб-странице? – NarendraR

+0

Если да, то добавьте 'Thread.sleep (2000)' после выбора выпадающего меню и может потребоваться время, чтобы выбрать – NarendraR

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

  • Нет связанных вопросов^_^