如何使用selenium webdriver从查找字段中选择值

时间:2015-03-28 06:55:57

标签: java selenium-webdriver

我正在尝试使用selenium webdriver测试旅行计划网站。

说...我正在测试cleartrip.com 如何使用selenium从查找字段中选择城市?

例如,我必须选择源城市 如果我输入DE,它给了我选项,如“德里”,德拉敦“根据我输入的内容和这些选项,我必须选择说德里。

如何使用Selenium实现它?请建议 我是硒的新手,任何帮助都会受到赞赏。

2 个答案:

答案 0 :(得分: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();

请注意这只是示例,请改进代码添加验证对象不为空,删除硬编码字符串等。

答案 1 :(得分: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;
}