如何从Capybara :: Session对象获取页面对象

时间:2017-04-17 19:11:37

标签: selenium webdriver capybara

我试图使用capybara的方法页面。应该有一些内容("一些txt")。

我通过获得水豚会话来使用水豚,但无法弄清楚如何获取页面对象

Capybara.register_driver :selenium do |app|
  Capybara::Selenium::Driver.new(app, :browser => :chrome)
end
Capybara.current_driver = :selenium
capdriver = Capybara::Session.new(:selenium)
capdriver.visit ("https://google.com")

如何使用上面的活动会话(capdriver)来使用它:

page.should have_content("some google text")

我可能错误地设置了水豚(我以前习惯使用Selenium :: Webdriver)。

1 个答案:

答案 0 :(得分:0)

page只是一种在Capybara :: DSL上定义的方法,当您在使用Capybaras自动会话管理时将Capybara :: DSL包含到您的测试类中时,它返回Capybara.current_session。由于您手动管理会话,因此您已经可以访问要声明的Capybara :: Session对象,所以

capdriver.should have_content("some google text")

注意,这假设您已将Capybara :: RSpecMatchers包含在您正在运行的任何对象范围内(因此have_content可用)