gpt4 book ai didi

ruby-on-rails - 在 Capybara 中选择混合模式内容

转载 作者:太空宇宙 更新时间:2023-11-03 18:25:07 24 4
gpt4 key购买 nike

我正在尝试使用 Capybara 提取混合模式内容。我 did it using Nokogiri , 但想知道为什么 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.

如何提取这段文字?

最佳答案

Capybara 需要驱动程序,XPath 将由驱动程序执行。从您的错误消息中可以看出,您正在使用 selenium-webdriver,它将在可用的情况下使用浏览器的 native XPath 实现。对于 IE,它使用自己的。

您似乎在使用 XPath 实现不完全兼容的组合。您可以尝试更改驱动程序或浏览器,但如果您真的想使用 Nokogiri 提取内容,您应该可以执行以下操作:

doc = Nokogiri::HTML(page.html)
puts doc.at_xpath("//h1/text()").content

关于ruby-on-rails - 在 Capybara 中选择混合模式内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12437585/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com