2015-07-11 4 views
0

Я хочу протестировать приложение в Joomla. У меня есть выпадающий список с этим кодом:Выбрать элемент из выпадающего списка

<div class="control-group"> 
    <div class="control-label"> 
     <label id="jform_category-lbl" for="jform_category" class="required"> 
      Categoria<span class="star">&#160;*</span> 
     </label> 
    </div> 
    <div class="controls"> 
     <select id="jform_category" name="jform[category]" class="required" required aria-required="true"> 
      <option value="9">stanza singola</option> 
      <option value="10">stanza doppia</option> 
      <option value="11">posto letto</option> 
     </select> 
    </div> 
</div> 

Я использую Java для тестирования сайта. Как выбрать из раскрывающегося списка опцию «stanza doppia»?

+0

Создание объекта 'Select' - это помощь, о которой упоминалось в первом ответе. – Turcia

ответ

1

Я пытался на вышеуказанном сайте упомянутого Вами и он работал на меня. На самом деле вам нужно использовать пользовательский xpath, чтобы выбрать значения из раскрывающегося списка и сохранить его в списке. Затем щелкните нужное значение.

Когда-нибудь Select() не работает, вы можете использовать это обходное решение для выбора значений в раскрывающемся списке.

Вот рабочий код для этого же.

import java.util.List; 
import java.util.concurrent.TimeUnit; 
import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.firefox.FirefoxDriver; 
import org.openqa.selenium.support.ui.ExpectedConditions; 
import org.openqa.selenium.support.ui.Select; 
import org.openqa.selenium.support.ui.WebDriverWait; 

public class SelectDropdown { 

    public static void main(String[] args) { 

     WebDriver driver = new FirefoxDriver(); 
     driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS); 
     driver.manage().window().maximize(); 
     driver.get("http://bachecalloggi.listedisinistra.org/index.php/annunci"); 
     driver.findElement(By.xpath("//button[contains(text(),'Ricerca Avanzata')]")).click(); 
     select1(driver); 
    } 

     public static void select1(WebDriver driver) { 
        //Clicking on the Element to open the dropdown. 
        WebElement clickme = driver.findElement(By.xpath("//*[@id='filter_energy_class_chzn']/a/span")); 
        clickme.click(); 
        //Sometime need to wait, as it take some time to load the values in dropdown. 
        //Thread.sleep(3000); 

        //Picking all the value from Dropdown. Use Custom Xpath for this. 
        List<WebElement> options = driver.findElements(By.xpath("//*[@id='filter_energy_class_chzn']//*[@class='chzn-results']/li")); 

        for (int i=0; i<options.size(); i++){ 
        if (options.get(i).getText().equalsIgnoreCase("B")){ 
        options.get(i).click(); 
        } 
        }   

     } 
} 
1

Рассматривали ли вы с помощью Select класса

WebElement elemnet = driver.findElement(By.id("jform_category")); 
Select select = new Select(elemnet); 
//By value 
select.selectByValue("10"); 

//By index 
select.selectByIndex(2); 

//By text 
select.selectByVisibleText("stanza doppia"); 
+0

Я стараюсь, но это dowsn't работа :( У меня такая же проблема на публичной странице: http://bachecalloggi.listedisinistra.org/index.php/annunci это код: ' общественного недействительное testFilterAds .() бросает исключение { \t driver.findElement (By.xpath ("// кнопка [содержит (текст(), 'Ricerca Avanzata')]")) нажмите(); \t \t WebElement elemnet = driver.findElement (By.id ("filter_energy_class")); Выбрать выберите = новый Select (elemnet); // По значению select.selectByValue ("Ъ"); // По индексу select.selectByIndex (2); // По тексту select.selectByVisibleText ("B"); \t Thread.sleep (500000); } ' – Razzo

+0

Какая ошибка? – Saifur

+0

ничего не выбрано :( – Razzo

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