Capybara を使用して混合モードのコンテンツを抽出しようとしています。私はノコギリでやったのですが、なぜカピバラで同じようなことができないのか不思議です。
require 'nokogiri'
doc = Nokogiri::HTML("<h1><em>Name</em>A Johnson </h1>")
puts doc.at_xpath("//h1/text()").content
動作しますが、Capybara で同じ XPath セレクターを試しても動作しません。
visit('http://stackoverflow.com')
puts find(:xpath, "//h1/text()").text
エラーが発生します:
[remote server] file:///tmp/webdriver-profile20120915-8089-kxrvho/extensions/fxdriver@googlecode.com/components/driver_component.js:6582:in `unknown': The given selector //h1/text() is either invalid or does not result in a WebElement. The following error occurred: (Selenium::WebDriver::Error::InvalidSelectorError)
[InvalidSelectorError] The result of the xpath expression "//h1/text()" is: [object Text]. It should be an element.
このテキストを抽出するには?