如何在普通班级使用水豚和硒

问题描述 投票:-1回答:1

我们在进行某些交易后的应用程序需要登录到第三方系统并输入一些数据。使用Capybara和硒进行了系统测试,效果很好,但是这是在测试时进行的。我想创建一个将在ActiveJob中运行的类/服务以执行相同的操作,因此在保存事务之后,我想调用ActiveJob.perform_later(params),并且该参数应传递给'external_system_integration'类并无头运行以登录到第三方站点,并输入以params接收的数据。

如何执行?

我的班级

require 'capybara/dsl'
require 'capybara/rspec'
require "selenium/webdriver"

class OrderDeskService
    Capybara.default_driver = :webkit
    include Capybara::DSL


    def self.login
        Capybara.register_driver :chrome do |app|
            profile = Selenium::WebDriver::Chrome::Profile.new
            profile["download.default_directory"] = DOWNLOAD_PATH
            Capybara::Selenium::Driver.new(app, :browser => :chrome, :profile => profile)
        end

        Capybara.configure do |config|
            config.run_server = false
            config.app_host = 'https://app.orderdesk.me'
        end
        visit '/login'
        sleep 10
    end
end
ruby-on-rails selenium capybara headless
1个回答
0
投票

绝对有可能在一个类中使用Capybara,但是按照您尝试的方式(调用Capybaras类方法)会与您的系统测试冲突,并给您带来各种麻烦。相反,您想在班级中使用手动会话管理,并在该会话上调用capybara方法。

© www.soinside.com 2019 - 2024. All rights reserved.