selenium_driver.rb 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. # Copyright (C) 2012-2021 Zammad Foundation, http://zammad-foundation.org/
  2. # This file registers the custom Zammad chrome and firefox drivers.
  3. # The options check if a REMOTE_URL ENV is given and change the
  4. # configurations accordingly.
  5. Capybara.register_driver(:zammad_chrome) do |app|
  6. # Turn on browser logs
  7. options = Selenium::WebDriver::Chrome::Options.new(
  8. logging_prefs: {
  9. browser: 'ALL'
  10. },
  11. prefs: {
  12. 'intl.accept_languages' => 'en-US',
  13. 'profile.default_content_setting_values.notifications' => 1, # ALLOW notifications
  14. },
  15. )
  16. options = {
  17. browser: :chrome,
  18. options: options
  19. }
  20. if ENV['REMOTE_URL'].present?
  21. options[:browser] = :remote
  22. options[:url] = ENV['REMOTE_URL']
  23. end
  24. Capybara::Selenium::Driver.new(app, **options).tap do |driver|
  25. # Selenium 4 installs a default file_detector which finds wrong files/directories such as zammad/test.
  26. driver.browser.file_detector = nil
  27. end
  28. end
  29. Capybara.register_driver(:zammad_firefox) do |app|
  30. profile = Selenium::WebDriver::Firefox::Profile.new
  31. profile['intl.locale.matchOS'] = false
  32. profile['intl.accept_languages'] = 'en-US'
  33. profile['general.useragent.locale'] = 'en-US'
  34. profile['permissions.default.desktop-notification'] = 1 # ALLOW notifications
  35. options = {
  36. browser: :firefox,
  37. options: Selenium::WebDriver::Firefox::Options.new(profile: profile),
  38. }
  39. if ENV['REMOTE_URL'].present?
  40. options[:browser] = :remote
  41. options[:url] = ENV['REMOTE_URL']
  42. end
  43. Capybara::Selenium::Driver.new(app, **options).tap do |driver|
  44. # Selenium 4 installs a default file_detector which finds wrong files/directories such as zammad/test.
  45. driver.browser.file_detector = nil
  46. end
  47. end