我正在尝试使用selenium webdriver测试旅行计划网站。
说...我正在测试cleartrip.com 如何使用selenium从查找字段中选择城市?
例如,我必须选择源城市 如果我输入DE,它给了我选项,如“德里”,德拉敦“根据我输入的内容和这些选项,我必须选择说德里。
如何使用Selenium实现它?请建议 我是硒的新手,任何帮助都会受到赞赏。
答案 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;
}