如何使用 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 没有提供交叉驱动程序方法来执行您想要的操作
我在自动测试中使用 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 没有提供交叉驱动程序方法来执行您想要的操作