在selenium中获取md-select选项列表

时间:2017-09-27 12:29:24

标签: java angularjs selenium

我有一个md-select下拉列表WebElement。我可以通过以下方式获得md-options

List<WebElement> dropDownElements = myDropDown.findElements(By.tagName("md-option"));`

这会给我一个md-options的列表。该列表包含我预期的项目数。 但是,我想验证这些md-options中的文字是否正确。每个WebElements的value属性都是[object Object],我想要实际的文本。

通过遍历网络元素的字段,我看到firstChild_的{​​{1}}字段的firstChild_包含我正在寻找的实际文本(包含很多内容)白色空间填充)。它位于data_对象中。但是,API没有任何类型DomText,我觉得这很笨拙?

如何轻松获取getChild()的文字内容? xpath会让我得到我想要的东西吗?我该怎么做?

HTML:

md-options

1 个答案:

答案 0 :(得分:0)

我创建了这个辅助方法来获取给定mdSelect

的字符串值
public static List<String> getStringsInMdSelect(WebElement mdSelect) {
    List<String> selectionStrings = new ArrayList<>();
    WebElement contentElement = mdSelect.findElement(By.tagName("md-content"));
    List<WebElement> contentDivs = contentElement.findElements(By.tagName("div"));

    for (WebElement contentDiv : contentDivs) {
        String rawText = contentDiv.getAttribute("textContent");
        selectionStrings.add(rawText.trim());
    }
    return selectionStrings;
}