假设我的html是这样的
<select class="list">
<option val="00"></option>
<option val="01">One</option>
</select>
这个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();
但是,当我尝试获取选项计数时,我收到以下错误。
TypeError: Object [object Object] has no method 'size'
答案 0 :(得分:1)
我发现了&#39;然后&#39;回调,用于查找此问题中元素的数量
Selecting nested iframe - selenium / javascript / node-js
driver.findElement(webdriver.By.className('list'))
.findElements(webdriver.By.tagName('option')))
.then(function(elements){
console.log(elements.length);
});
答案 1 :(得分:0)
您可以使用Select
功能:
Select select = new Select(driver.findElement(webdriver.By.className('list')));
List<WebElement> listOptions = select.getOptions();
listOptions.size();
答案 2 :(得分:0)
findElement仅返回单个webElement。应该使用findElements返回webElement列表