我在自动测试中使用 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 "施工? 请提供一些实例来查看全貌。
答案 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提供的任何内容