Как я могу получить дословный атрибут href
У меня есть внутренняя ссылка на странице HTML:
<div class="bar">
<a href="#foo">Go to foo</a>
</div>
Я выбрал этот элемент привязки, используя Capybara matcher. Когда я пытаюсь получить доступ к href
атрибут, значение расширяется до полного URL:
find(".bar a")[:href] # => "http://path/to/page#foo"
Как получить только внутреннюю ссылку, то есть дословное значение href?
find(".bar a")... # => "#foo"
1 ответ
Решение
Капибара возвращает имущество href
(в отличие от атрибута) в JS способны драйверы, что нормализуется. Чтобы получить доступ к значению атрибута, вам нужно будет использовать define_script
link = find(".bar a")
evaluate_script("arguments[0].getAttribute('href')", link)
Если, с другой стороны, вы просто хотите убедиться, что ссылка имеет определенный атрибут href, вы можете сделать это с помощью селектора:link
expect(page).to have_link('Go to foo', href: '#foo')
или найти ссылку по атрибуту href
link = find(:link, href: '#foo')
так далее...