使用selenium和nodejs获取下拉值

时间:2014-12-03 13:43:11

标签: 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中进行吗

2 个答案:

答案 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();
    }
};

请参阅this other question