如何使用Ruby调用定义的Capybara驱动程序的Selenium方法?

时间:2016-05-26 18:38:54

标签: ruby selenium capybara driver

我在自动测试中使用 Capybara 作为驱动程序。 我将驱动程序定义为: Capybara.default_driver =:selenium 但是不可能以通常的方式使用Selenium方法(例如: @ driver.find_element(:xpath,:: Login_button).send_keys(" MY_login"))。 我在一些资源上看到可以使用构造调用Selenium方法: 的 page.driver.browser 例如: element = page.driver.browser.find_element(:id,ell)。 但是错误发生在" 页面"是没有定义的方法。

问题是如何使用定义的Capybara驱动程序的Selenium方法?

可能需要以另一种方式定义Capybara驱动程序才能成功使用" page.driver.browser "施工? 请提供一些实例来查看全貌。

1 个答案:

答案 0 :(得分:3)

page只是Capybara.current_session的Capybara DSL中的便捷方法。如果您已将Capybara :: DSL纳入测试范围,则可以使用“page” - 请参阅https://github.com/jnicklas/capybara#using-capybara-with-testunit

如果您不想将Capybara DSL包含在测试中,您也可以使用

Capybara.current_session.driver.browser ....

虽然直接访问selenium方法只能在绝对必要时进行,并且没有交叉驱动程序方法来执行Capybara提供的任何内容