Ruby 如何在Capybara中获取DOM元素的HTML?
我想使用irb调试/开发代码:Ruby 如何在Capybara中获取DOM元素的HTML?,ruby,selenium-webdriver,capybara,inspect,Ruby,Selenium Webdriver,Capybara,Inspect,我想使用irb调试/开发代码: irb> require "capybara" irb> include Capybara::DSL irb> Capybara.current_driver = :selenium irb> visit "http://example.com" 但是我如何获得我找到的元素的HTML呢 irb> s = find(".user-pane") => #<Capybara::Element tag="nav"> irb
irb> require "capybara"
irb> include Capybara::DSL
irb> Capybara.current_driver = :selenium
irb> visit "http://example.com"
但是我如何获得我找到的元素的HTML呢
irb> s = find(".user-pane")
=> #<Capybara::Element tag="nav">
irb> s.native.inner_html
NoMethodError: undefined method `inner_html' for #<Selenium::WebDriver::Element:0x007fc1da191b28>
我在SO和其他地方找到的解决方案不起作用:
- 为什么
不再工作了?.inner\u html
因为
现在是WebDriver,而不是Nokogiri对象.native
- 为什么
.native.get\u属性不起作用?
因为该方法的名称与Python不同
s.native.attribute('outerHTML')
但即使是在google.com页面上,也要花费近5秒的时间才能完成。我的水豚
查找('#name')。native
返回typeNokogiri::XML::Element
,它有一个to_html
方法(除其他方法外)。如果这就是native
为您返回的内容,那么s.native.to_html
应该为您提供html。您是否可以提供一个可以访问的通用域,并具有。用户窗格
?你有没有试过find('user-pane
)?@Bala,可在google.com和find(#hplogo)上复制啊哈,明白了。+1用于分享仅供参考这对水豚和恶灵不起作用。page.find(…).native返回Capybara::Poltergeist::Node,它没有一个“attribute”方法用于Capybara w/Poltergeist,您可以使用s['outerHTML']
,这将起作用。例如:find('some#u按钮')['outerHTML']
capybara (2.4.4)
nokogiri (1.5.6)
selenium-webdriver (2.43.0)