Rails Capybara 這個 gem, 相信很多人都是拿來做 test,
我原本也是這麼想, 但基於某次主管把它拿來做別的事情後, 我改觀了, 果然經驗很重要!!!
某次因為要批次列印 c2c 店到店的物流單, 但綠界沒有這個 api 啊啊啊
但客戶又有這個需求, 這時求救於主管, 一語點醒夢中人
就用 Capybara 的 browser 來幫你自動按就好了。
1 2 3 4
| gem 'capybara' gem 'selenium-webdriver' gem 'capybara-screenshot' gem "cuprite"
|
之後我寫了一個 service
來執行
1 2 3 4
| require 'capybara' require 'selenium-webdriver' require 'capybara-screenshot' require 'capybara/cuprite'
|
接下來就是一些基本設定
1 2 3 4 5 6 7 8 9 10 11 12
| Capybara.javascript_driver = :cuprite Capybara.default_driver = :selenium Capybara.default_max_wait_time = 7 Capybara.app_host = "#{Settings.default_url_options.protocol}://" + Settings.default_url_options.host.to_s Capybara.run_server = true Capybara.register_driver :cuprite do |app| options = { window_size: [1024, 768], headless: true, timeout: 120, process_timeout: 120, browser_options: { 'no-sandbox': nil } } Capybara::Cuprite::Driver.new(app, options) end @session = Capybara::Session.new(:cuprite) @session.driver.add_headers({ 'User-Agent' => 'Cuprite', 'Accept-Language' => 'zh-tw' })
|
那其實接下來就是行為觸發, 好比像在寫測試一樣, 根據你的需求去執行.
但就是想說, 有時候如果把一個東西定義了上了標籤, 就好像刻板印象一樣,
但其實可以發揮的作用也是很多, 這是在提醒自己。