不重复:我不是在<option>
内要求<select>
。我想将<select>
个网页元素本身作为列表返回。实现后,列表的大小应为2.
我发现driver.findElements()
只返回List<WebElement>
。
如何通过List<Select>
返回ng-model="income.frequency"
?
(注意:我有ngWebDriver所以我可以使用ByAngular.model("income.frequency")
作为定位器。)
答案 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);
}