Selenium-webdriver 在 JavaScript 中获取子元素计数

wkl*_*uey 5 selenium webdriver selenium-webdriver

假设我的html是这样的

<select class="list">
  <option val="00"></option>
  <option val="01">One</option>
</select>
Run Code Online (Sandbox Code Playgroud)

这个js测试文件能够运行,但我试图获取选择列表中的子元素的数量。

var assert = require('assert'),
  test = require('selenium-webdriver/testing'),
  webdriver = require('selenium-webdriver');

var demoFile = '/path/to/my/test.html';
driver.get(demoFile);

//Setup driver
var driver = new webdriver.Builder().
withCapabilities(webdriver.Capabilities.chrome()).build();

//Get the child elements of select list, which are the options
var ele = driver.findElement(webdriver.By.className('list'))
  .findElements(webdriver.By.tagName('option')));

//size is undefined
ele.size();
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试获取选项计数时,出现以下错误。

TypeError: Object [object Object] has no method 'size'
Run Code Online (Sandbox Code Playgroud)

Ric*_*ard 0

您可以使用以下Select功能:

Select select = new Select(driver.findElement(webdriver.By.className('list')));
List<WebElement> listOptions = select.getOptions();
listOptions.size();
Run Code Online (Sandbox Code Playgroud)