selenium java:下拉项会动态更新

kkbh8khc  于 2021-06-27  发布在  Java
关注(0)|答案(1)|浏览(424)

任何输入都会得到赞赏:我正在处理的web应用程序没有“select”标记,并且下拉列表中的项目会得到动态更新。这意味着当我点击下拉菜单的向下箭头时,它会显示大约10个项目,当我向下滚动“下拉菜单的滚动条”时,会填充更多的项目。我可以通过在下拉框的“field”中输入值,然后单击创建的“runtime”来选择一个项目。 driver.findElement(By.xpath("//li[@text()='USA']).click 它可以很好地选择任何项目,我需要得到所有项目在下拉列表中。有没有办法做到这一点?

wpcxdonn

wpcxdonn1#

driver.findElement(By by) 以及 driver.findElements(By by) 作用域为while dom。
您可以使用以下方法将dom的一小块区域作为目标: element.findElement(By by) 以及 element.findElements(By by) 使用此项:

WebElement dropdown = driver.findElement(By.DROPDOWN LOCATOR);
List<WebElement> options = dropdown.findElements(By.OPTION LOCATOR);

你仍然需要选项定位器。但是它更容易实现,它只从parrent元素收集子元素。
选择的方法如下所示:

public void selectByText(List<EebElement> options, String text) {
    for (WebElement element: options) {
        if (element.getText().equals(text)) {
            element.click();
            break;
        }
    }
}

public void selectByValue(List<EebElement> options, String value) {
    for (WebElement element: options) {
        if (element.getAttribute("value").equals(value)) {
            element.click();
            break;
        }
    }
}

相关问题