无法单击或选择下拉列表中显示的值

时间:2017-11-15 03:57:17

标签: java ajax selenium selenium-webdriver

我正在尝试使用Selenium Webdriver使用Java实现一些代码。

基本上,我有一个带有文本框的网站。一旦用户输入第一个字母,基于该值将显示(使用AJAX)。我需要选择我在发送密钥中提到的特定值。

WebElement fromCity = driver.findElement(By.id("pickUpLocation"));
fromCity.sendKeys("A Ma Temple / 媽閣");

Thread.sleep(2000);

WebElement ajaxContainer1 = driver.findElement(By.className("txt-box ng-touched ng-dirty ng-valid"));
WebElement ajaxHolder1 = ajaxContainer1.findElement(By.tagName("ul"));
List<WebElement> ajaxValues1 = ajaxHolder1.findElements(By.tagName("li"));

for (WebElement value1 : ajaxValues1) {
    if (value1.getText().equals("A Ma Temple ")) {
        ((WebElement)ajaxValues1).click();
        break;
    }
}

2 个答案:

答案 0 :(得分:0)

发送密钥后。您的Ajax值应该在与您关键字搜索相关的框中检索。您需要获取完整的框。并按照您在循环中的方式获取每个.get文本并将其与您的预期文本并单击此条件为真的位置。 thread.sleep()

之前的那一行是什么

答案 1 :(得分:0)

我想你可以尝试通过索引进行选择。它应该是这样的

arguments.callee

0表示下拉列表中的第一个元素。根据该元素的索引号,在selectByIndex(0)

中输入相应的数字

如果这有帮助,请告诉我。感谢