【问题标题】:Getting dropdown values using selenium and nodejs使用 selenium 和 nodejs 获取下拉值
【发布时间】:2015-02-01 02:34:04
【问题描述】:

我需要获取下拉列表的所有选项,我需要遍历这些值并提交表单。所以我需要下拉值列表。

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

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

这可以在 nodejs + selenium + javascript 中做到吗

【问题讨论】:

标签: javascript node.js selenium


【解决方案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>

在用于 NodeJS 的 Selenium 中,你会抓住“它”:

var webdriver = require('selenium-webdriver');

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

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

当您为选项发送 .sendKeys() 时,它必须等于 value=''

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

【讨论】:

  • 您好 GARPdev ,感谢您的回答,我已经尝试了您的解决方案,但它适用于一个人,有时它会失败,例如在我的场景中需要通过读取 csv 来填写地址表格文件中的多条记录此解决方案将失败
【解决方案2】:

你可以使用 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 以获取相同信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多