【问题标题】:How to call Selenium methods with defined Capybara driver using Ruby?如何使用 Ruby 使用定义的 Capybara 驱动程序调用 Selenium 方法?
【发布时间】:2016-09-24 22:03:45
【问题描述】:

我在汽车测试中使用 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)。 但出现错误,提示“page”未定义方法。

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

为了成功使用“page.driver.browser”构造,是否有必要以另一种方式定义Capybara驱动程序? 请提供小实例以查看全貌。

【问题讨论】:

    标签: ruby selenium capybara driver


    【解决方案1】:

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

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

    Capybara.current_session.driver.browser ....
    

    虽然直接访问 selenium 方法应该只在绝对必要的情况下进行,并且没有跨驱动程序的方式来做你想做的 Capybara 提供的事情

    【讨论】:

    • 非常感谢!我使用“Capybara.current_session.driver.browser”构造。
    • @SerhiiKaihorodov 太好了,别忘了接受答案(复选标记),这样人们就知道问题已得到解答
    猜你喜欢
    • 1970-01-01
    • 2015-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-14
    • 1970-01-01
    • 2014-01-03
    • 1970-01-01
    相关资源
    最近更新 更多