我有一个要求获取下拉列表的所有选项,我需要循环这些值并提交表单。所以我需要下拉列表的列表。
java中的以下代码符合我的确切要求,但我在Javascript + selenium + Nodejs中需要相同的代码
Select select = new Select(driver.findElement(By.name("height")));
List list = select.getOptions();
这可以在nodejs + selenium + javascript中进行吗
答案 0 :(得分:-1)
对于任何坚持这一点的人来说,我是如何选择的:
<select id='mySelection'>
<option value='0'>Hello</option>
<option value='1'>Everybody</option>
<option value='2'>Got</option>
<option value='3'>It</option>
</select>
在Selenium for NodeJS中,你会抓住“它”:
var webdriver = require('selenium-webdriver');
var driver = new webdriver.Builder().
withCapabilities(webdriver.Capabilities.chrome()).
build();
driver.findElement(webdriver.By.id('mySelection')).sendKeys('3');
当你选择.sendKeys()时,它必须等于值=''
在你的情况下,只需抓取父元素,然后获取子元素的sendKeys()。
答案 1 :(得分:-3)
你可以使用Cheerio -
module.exports = {
"login": function (browser) {
var cheerio = require("cheerio")
browser
.url("http://www.wikipedia.org")
.waitForElementVisible('body', 1000)
.waitForElementVisible('select#searchLanguage', 1000)
.source(function(result) { // .source() dump the page source in the variable
$ = cheerio.load(result.value)
var num_languages = $('select#searchLanguage option').length
console.log('Wikipedia.org Languages: ' + num_languages);
})
.end();
}
};