Как использовать метод all для элементов с двумя классами - PullRequest
0 голосов
/ 30 ноября 2018

Этот код не работает

descriptions = []
page.all('div', class: 'news-tidings__speech news-helpers_hide_mobile-small').each do |el|
  descriptions.push(el.text[1..200])
end

одна часть HTML:

<div class="news-tidings__speech news-helpers_hide_mobile-small">text </div>

1 Ответ

0 голосов
/ 30 ноября 2018

Есть несколько способов сделать то, что вы хотите.

  1. Просто используйте стандартный селектор CSS с несколькими классами

    page.all('div.news-tidings__speech.news-helpers_hide_mobile-small')
    
  2. Если вы хотите использовать опцию :class, она примет массив нужных классов (элемент должен иметь все классы)

    page.all('div', class: ['div.news-tidings__speech','news-helpers_hide_mobile-small'])
    
  3. Если вы хотите убедиться, что ониединственные классы, и в определенном порядке, на элементе, то вы можете использовать селектор атрибута CSS

    page.all("div[class='news-tidings__speech news-helpers_hide_mobile-small']")
    
...