2016-05-04 3 views
2

Как я могу получить список элементов с определенным именем класса в javascript с selenium?Получить список элементов с именем класса в javascript с selenium

Я ищу любые элементы с классом message_body. Я хочу массив, содержащий все элементы, которые имеют этот класс.

driver.findElements(By.className("message_body")) не работает, кажется, что-то возвращает.

Как я могу получить этот список?

+0

Что, кажется, вернется? И какой массив вы ищете? (Можете ли вы показать присвоение, которое вы делаете с помощью 'driver.findElements (By.className (« message_body »))?? – Tyler

+0

@Tyler Я не уверен. Другой ответ SO ответил, что он возвращает« обещание », но я не знаю что это значит. – Riker

+0

Какая версия Selenium вы используете? – Tyler

ответ

1

Вот пример, чтобы получить текст из списка элементов:

driver.findElements(By.className("message_body")).then(function(elements){ 
    elements.forEach(function (element) { 
     element.getText().then(function(text){ 
      console.log(text); 
     }); 
    }); 
}); 
0

Итак, я использую старую версию Selenium, v2.47.1, но что-то я когда driver.findElements(By.className("someClass")) не было достаточный был driver.findElements(By.xpath("/path/to/[@class='someClass']")). Это вернет List<WebElement>. Если я правильно помню, By.xpath немного медленнее, чем некоторые другие варианты в некоторых браузерах, но не по целому множеству ....

+0

Это javascript, поэтому я не думаю, что 'List ' будет возвращен, но это может сработать. – Riker

+0

Извините, это не работает. driver.findElements не является функцией'. – Riker

+0

О, я неправильно понял это как java - это функция java. Извините. – Tyler

Смежные вопросы