Как я могу получить заголовок и ссылку (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" 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
Надеюсь это поможет:)