Java 使用selenium和nodejs获取下拉列表值

Java 使用selenium和nodejs获取下拉列表值,java,javascript,node.js,selenium,Java,Javascript,Node.js,Selenium,我有一个要求获得下拉列表的所有选项,我需要循环这些值并提交表单。所以我需要下拉列表 以下java代码符合我的确切要求,但我需要Javascript+selenium+Nodejs中的相同代码 Select select = new Select(driver.findElement(By.name("height"))); List list = select.getOptions(); 这在nodejs+selenium+javascript中可以实现吗?您可以使用Cheerio- modu

我有一个要求获得下拉列表的所有选项,我需要循环这些值并提交表单。所以我需要下拉列表

以下java代码符合我的确切要求,但我需要Javascript+selenium+Nodejs中的相同代码

Select select = new Select(driver.findElement(By.name("height")));
List list = select.getOptions();

这在nodejs+selenium+javascript中可以实现吗?您可以使用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();
    }
};

请参阅以获取相同的信息。

对于任何被困于此的人,以下是我如何选择的:

<select id='mySelection'>
   <option value='0'>Hello</option>
   <option value='1'>Everybody</option>
   <option value='2'>Got</option>
   <option value='3'>It</option>
</select>
当为选项选择.sendKeys()时,它必须等于值=“”


在您的情况下,只需获取父元素,然后获取子元素的sendKeys()。

可能的重复:Hello GARPdev,感谢您的回答,我已经尝试过您的解决方案,但它适用于个人,有时会失败,例如在我的场景中,需要通过读取多个记录的csv文件来填写地址表,此时此解决方案将失败
var webdriver = require('selenium-webdriver');

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

driver.findElement(webdriver.By.id('mySelection')).sendKeys('3');