Я пытаюсь проверить веб-сайт планировщика поездок, используя selenium webdriver.
Скажем, например, я тестирую cleartrip.com.
Как выбрать город из поля поиска с помощью селена?
Например, я должен выбрать источник города.
Если я нахожу DE, он дает мне варианты, такие как "Дели", "Дехрадун", основываясь на том, что я набрал, и из этих вариантов, я должен выбрать "Дели".
Как достичь этого с помощью 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();
Обратите внимание, что это просто пример, пожалуйста, улучшите код, добавляющий проверки, которые не имеют значения null, удаляют жестко закодированные строки и т.д.
Вы можете просто достичь этого, поставив некоторое ожидание, а затем щелкнуть по нужному городу, например:
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;
}