如何处理硒中的自动建议?

时间:2019-03-11 15:38:39

标签: selenium

/ 我想从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 个答案:

答案 0 :(得分:1)

您使用的xpath不正确。我为您提供了正确的xpath和单击自动完成器的另一种方法(通过使用className),您可以使用它们中的任何一个,两者都可以正常工作。随着wait.until方法返回该元素,您可以直接在其上执行click,这将导致页面上的操作/刮擦至少减少一个。

自动完成程序正确的Xpath:

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

按类别名称自动完成的人:

wait.until(ExpectedConditions.visibilityOfElementLocated(By.className("uiSelected"))).click();