Как я могу получить заголовок и ссылку (URL)?

У меня есть следующий HTML-код. Я хочу получить href и название продукта и сохранить их в различных переменных. Я пробовал следующий код.

within("div.product-action") do
        @product_url = find("a.href")
      end

Но это выдает ошибку.

Capybara::ElementNotFound: Unable to find css "a.href"

Мой HTML-код выглядит следующим образом:

<div class="product-action zoom" ng-class="{ 'logged-out': !user.$isLoggedIn }">
   <a href="/g/women/christian-dior/so-real-sunglasses-colorless" title="Christian Dior So Real&quot; Sunglasses-Colorless" ng-click="ProductUtils.cache(result)" class="bottom-action-container quickview-button hover-option" track="{
                type: 'product-info',
                name: moduleType,
                breadcrumbs: result.breadcrumbs || breadcrumbs
              }">
              <i class="icon-zoom"></i>
    </a>
</div>

2 ответа

a.href выберет a элементы, которые имеют href учебный класс. Это не то, что вы хотите.

Вы можете получить доступ к атрибутам в виде хэша после того, как вы нашли элемент:

a = find('.product-action a')
href = a[:href]
title = a[:title]

Вы можете найти href и заголовок данного HTML-кода с помощью нижеприведенного кода:

within("div.product-action") do
 productUrl = find(:css, '.bottom-action-container')[:href]
 productTitle = find(:css, '.bottom-action-container')[:title]
end

OR

within("div.product-action") do
 productUrl = find('a')[:href]
 productTitle = find('a')[:title]
end

Надеюсь это поможет:)

Другие вопросы по тегам