返回全部选择Web元素作为Selenium中的List

时间:2018-01-22 11:49:43

标签: java angularjs selenium

不重复:我不是在<option>内要求<select>。我想将<select>个网页元素本身作为列表返回。实现后,列表的大小应为2.

我发现driver.findElements()只返回List<WebElement>

如何通过List<Select>返回ng-model="income.frequency"

(注意:我有ngWebDriver所以我可以使用ByAngular.model("income.frequency")作为定位器。)

HTML: enter image description here

1 个答案:

答案 0 :(得分:3)

为了按元素匹配元素,可以使用CSS选择器:

By.cssSelector("<tag>[<attribute>='<value>']")

在上下文中:

List<WebElement> elements = driver.findElements(By.cssSelector("select[ng-model='income.frequency']")); 


修改:根据Selenium documentation,您可以使用非常直接的构造函数创建Select。因此,如果您想要一个Select对象列表,只需构建一个新列表:

List<Select> selectList = new ArrayList<>();
List<WebElement> elements = driver.findElements(By.cssSelector("select[ng-model='income.frequency']")); 
for(WebElement element : elements) {
    selectList.add(new Select(element);
}