Как обработать автоматическое предложение в селене? - PullRequest
1 голос
/ 11 марта 2019

/ Я хочу выбрать Мумбаи в качестве источника и Дели в качестве пункта назначения из автопредставления на веб-сайте cleartrip.Я написал ниже код.Здесь источник обрабатывается должным образом, но по назначению отображается список автозаполнения, но из списка ничего не выбирается.Может кто-нибудь, пожалуйста, помогите мне /

String baseurl = "https://www.cleartrip.com/";
driver.get(baseurl);
String title = driver.getTitle();
System.out.println(title);
WebDriverWait wait=new WebDriverWait(driver, 20);
WebElement flighttab = driver.findElement(By.linkText("Flights"));
flighttab.click();
Thread.sleep(5000);
WebElement roundtrip_radio_button = driver.findElement(By.id("RoundTrip"));
roundtrip_radio_button.click();
WebElement from = driver.findElement(By.xpath(".//*[@id='FromTag']"));
WebElement to =driver.findElement(By.xpath(".//*[@id='ToTag']"));
from.clear();
from.sendKeys("Mumbai");
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//ul/li[@class='list']")));
driver.findElement(By.xpath("//ul/li[@class='list']")).click();
to.clear();
to.sendKeys("Delhi");
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//ul/li[@class='list']")));
driver.findElement(By.xpath("//ul/li[@class='list']")).click();

1 Ответ

1 голос
/ 11 марта 2019

Используемый вами xpath неверен. Я предоставляю вам правильный xpath и альтернативный способ нажать на автозаполнение (используя className), вы можете использовать любой из них, оба будут работать нормально. И так как метод wait.until возвращает элемент, вы можете напрямую выполнить click для него, что приведет к минимуму одной операции / очистке страницы.

Автозаполнение Правильный Xpath:

wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//a[@class='uiSelected']"))).click();  

Автозаполнение по className:

wait.until(ExpectedConditions.visibilityOfElementLocated(By.className("uiSelected"))).click();  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...