我有一个向DOM注入一些文本的页面:'Success!'
。
Javascript代码有效,因为我在屏幕截图中看到了预期的文字,并且规范通过了:
page.visit '/'
save_and_open_screenshot
expect( page).to have_content 'Success!'
puts page.html
但是,page.html
未更新。它没有注入的文本。
如何获取更新的DOM的HTML?
编辑:我发现问题是由iframe引起的。 iframe未添加到page.html,但已添加到页面中。编辑#2:事实证明,“成功!'内容不在iframe中。所以上下文可能会切换到iframe。
答案 0 :(得分:1)
找到一个可行的解决方法:
html = page.evaluate_script( 'document.documentElement.innerHTML' )
我想可以使用JS或jQuery finder找到预期的<div>
。
答案 1 :(得分:1)
对于整个页面正文,您可以这样做:
page.body
特别是任何元素
page.find(".my-div").base.inner_html
在此处查看完整的API:https://github.com/thoughtbot/capybara-webkit/blob/master/lib/capybara/webkit/node.rb