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

How to call Selenium methods with defined Capybara driver using Ruby?

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

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

为了成功使用“page.driver.browser”构造,可能需要以另一种方式定义 Capybara 驱动程序? 请提供小实例看全图

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 没有提供交叉驱动程序方法来执行您想要的操作