如何使用 selenium webdriver select 来自查找字段的值

How to select a value from a lookup field using selenium webdriver

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

比如说我正在测试 cleartrip.com.
如何使用 selenium 从查找字段中 select 一个城市?

例如,我必须 select 源城市。
如果我输入 DE,它会根据我输入的内容为我提供诸如 "Delhi, "Dehradun" 之类的选项,并且在这些选项之外,我必须 select 说德里。

如何使用Selenium实现?欢迎推荐。
我是 selenium 的新手,如有任何帮助,我们将不胜感激。

这段代码对我有用

        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();

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

您只需稍等片刻,然后点击所需的城市即可轻松实现,例如:

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;
}