Как выбрать значение из поля поиска с помощью селена webdriver

1

Я пытаюсь проверить веб-сайт планировщика поездок, используя selenium webdriver.

Скажем, например, я тестирую cleartrip.com.
Как выбрать город из поля поиска с помощью селена?

Например, я должен выбрать источник города.
Если я нахожу DE, он дает мне варианты, такие как "Дели", "Дехрадун", основываясь на том, что я набрал, и из этих вариантов, я должен выбрать "Дели".

Как достичь этого с помощью Selenium? Пожалуйста, предложите.
Я новичок в селене, и любая помощь будет оценена по достоинству.

Теги:
selenium-webdriver

2 ответа

1
Лучший ответ

Этот код работает для меня

        WebDriver driver = new FirefoxDriver();
        driver.get("http://www.cleartrip.com/");

        WebElement From = driver.findElement(By.id("FromTag"));

        From.sendKeys("Del");

        WebElement autoComplete = driver.findElement(By.id("ui-id-1"));

        try{
            (new WebDriverWait(driver, 5/*sec*/)).
                    until(ExpectedConditions.presenceOfElementLocated((By.cssSelector("li.list"))));             }
        catch(org.openqa.selenium.TimeoutException e){
            System.out.println(e.getMessage());
        }

        List<WebElement> autoCompleteList = autoComplete.findElements(By.className("list"));

        if(autoCompleteList.size()==0) {
            System.out.println("autoComplete list NOT found");
        }
        else {
            System.out.println("autoComplete list Found with elements: "+autoCompleteList.size());
        }

        for (WebElement ac: autoCompleteList){
            if(ac.getText().contains("Delhi")){  
                ac.click();
                break;
            }
        }
        driver.close();

Обратите внимание, что это просто пример, пожалуйста, улучшите код, добавляющий проверки, которые не имеют значения null, удаляют жестко закодированные строки и т.д.

1

Вы можете просто достичь этого, поставив некоторое ожидание, а затем щелкнуть по нужному городу, например:

public CurrentPage selectFrom(String cityCode, String cityName){
    driver.findElement(By.id("FromTag")).sendKeys(cityCode);;
    new WebDriverWait(driver, 5).until(
        ExpectedConditions.elementToBeClickable(
            By.xpath(".//*[@id='ui-id-1']//a[contains(.,'" + cityName + "')]")))
                .click();
    return this;
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню