Капибара / Рубин - Попытка вернуть все теги и атрибуты HTML - PullRequest
1 голос
/ 03 апреля 2019

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

describe 'Html', :html do
  before(:each) do
    visit 'https://www2.losango.com.br/'
  end

  it 'Html' do
    html = page.all('img').map { |img| img['alt'] }
    print html
  end
end

Когда я открою URL "https://www2.losango.com.br/", я найду много img alt =" ", однако когда я его запустил, я получил результат:

Losango - Conte com a gente
Losango - Conte com a gente
Empréstimo Pessoal Losango
Crediário Losango
Seguros Losango
Seguros Losango
Simulador de Crédito ideal
Cartão de Crédito Losango
Losango - Conte com a gente

Следующее - img alt = "Empréstimo com taxa a partir de 3.99% a.m" - не возвращается. Вот HTML-код:

<div class="banner__img">
          <figure>
            <img src="https://www2.losango.com.br/assets/imagens/pws/banner-emprestimo.jpg" alt="Empréstimo com taxa a partir de 3.99% a.m">
          </figure>
</div>

1 Ответ

1 голос
/ 03 апреля 2019

По умолчанию Capybara находит только элементы, которые видны на странице.Элемент, о котором вы конкретно спрашиваете, не возвращается, потому что он не виден на странице.Если вы хотите получить все соответствующие элементы (видимые и невидимые), вы можете указать all игнорировать проверку видимости, изменив значение на

html = page.all('img', visible: false).map { |img| img['alt'] }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...