Получение выпадающих значений с использованием селена и nodejs

У меня есть требование получить все параметры выпадающего списка, и мне нужно перебрать эти значения и отправить форму. Поэтому мне нужен список выпадающих значений.

следующий код в java соответствует моему точному требованию, но мне нужен тот же код в Javascript + selenium + Nodejs

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

Можно ли это сделать в nodejs + selenium + javascript

2 ответа

Для тех, кто застрял в этом, понимает, как я это сделал для варианта:

<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 для 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() для дочернего элемента.


Вы можете использовать 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(); }
};

См. этот другой вопрос для этого.

licensed under cc by-sa 3.0 with attribution.