【问题标题】:Return all Select web elements as List in Selenium在 Selenium 中将所有选择 web 元素作为列表返回
【发布时间】:2018-01-22 11:49:42
【问题描述】:

不是重复的:我不是在 <select> 中要求 <option>。我想将<select> web 元素本身作为列表返回。完成后,列表的大小应为 2。


我只找到了返回List<WebElement>driver.findElements()

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

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

HTML:

【问题讨论】:

标签: java angularjs selenium


【解决方案1】:

为了通过属性匹配元素,您可以使用 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);
}

【讨论】:

  • 如果您想要Selects 的列表,您可以将其构造函数与每个 WebElement 一起使用:new Selector(WebElement element)
  • @silver 你好!我已经编辑了我的答案。让我知道它是否适合你
  • 谢谢! Selenium 默认情况下似乎还没有这个,但你的解决方案很优雅。赞成并接受。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-09
  • 1970-01-01
  • 1970-01-01
  • 2013-08-31
相关资源
最近更新 更多