У меня есть этот простой HTML:
<div> Test <span> someting </span></div>
Как я могу получить только innertext
div?
Использование text
извлекает весь текст из div:
[1] pry(#<SandBox>)> first(:xpath, '//div').text
=> "Test someting"
Использование text()
в моем запросе XPath приводит к следующей ошибке:
[2] pry(#<SandBox>)> first(:xpath, '//div/text()')
Capybara::Poltergeist::BrowserError: There was an error inside the PhantomJS portion of Poltergeist. This is probably a bug, so please report it.
TypeError: 'null' is not an object (evaluating 'window.getComputedStyle(element).display')
Однако использование того же XPath с Nokogiri работает:
[3] pry(#<SandBox>)> Nokogiri::HTML(page.html).xpath('//div/text()').text
=> " Test "
Есть ли способ сделать это, используя только капибару, не прибегая к Нокогири?
text()
, и если это не сработает, я буду считать это серьезной ошибкой. Таким образом, вы либо ждете исправления, либо используете другое решение, такое как Nokogiri. - person dirkk   schedule 03.04.2014