Как выбрать значение атрибута для выбранного элемента с помощью wombat

#ruby #rubygems #css-selectors

#ruby #rubygems #css-селекторы

Вопрос:

Я хочу выбрать значение href ссылки, которую я выбрал с помощью wombat:

вот как выглядит селектор:

 parent_url "css=#breadcrumbcontainer > div > p a:last-child"
 

wombat имеет форматы свойств, такие как: html, текст и т.д. Даже если я использую html для этого выделения, я получаю внутренний текст ссылки, который для меня бесполезен.

Пожалуйста, предложите селектор css, который просто возвращал бы href или способ получить href, используя какой-либо параметр формата свойств wombat.

Исходный код wombat gem можно найти по адресу: https://github.com/felipecsl/wombat

Ответ №1:

Вы не можете использовать CSS для выбора атрибута, вы можете выбирать только элементы. Вам нужно будет использовать XPath для получения href . Попробуйте использовать:

 parent_url "xpath=//*[@id = 'breadcrumbcontainer']/div/p//*[position() = last() and self::a]/@href"
 

Я получил этот XPath, используя Nokogiri::CSS.xpath_for("your css query") и добавляя /@href для выбора узла атрибута. Wombat использует Nokogiri, поэтому такой перевод уже происходит.

Комментарии:

1. Эй, Мэтт, я тоже придумал это решение. Это то, что я использую: parent_url xpath: «(//*[@id=’breadcrumbcontainer’]/div //a)[last()]/@href» Хотя ваш ответ довольно близок, не уверен, лучше он или нет, я принимаю его какправильный ответ. Спасибо 🙂

2. @whizcreed Поскольку я не знаю структуру целевой веб-страницы, я могу указать XPath, созданный Nokogiri, только когда он преобразует ваш CSS. Поскольку вы знаете структуру страницы, вы можете создать более краткое выражение XPath. Они, безусловно, выглядят одинаково.