我想使用 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>
gem list
capybara (2.4.4)
nokogiri (1.5.6)
selenium-webdriver (2.43.0)
最佳答案
我在 SO 和其他地方找到的解决方案不起作用:
- 为什么
.inner_html
不再有效?
因为.native
现在是 WebDriver,而不是 Nokogiri 对象。 - 为什么
.native.get_attribute
不起作用?
因为该方法的名称与 Python 不同。
所以答案是:s.native.attribute('outerHTML')
但即使在 google.com 页面上也需要将近 5 秒才能完成。
关于ruby - 如何在 Capybara 中获取 DOM 元素的 HTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26588040/