Как зарегистрировать драйвер Firefox с настроенным профилем для работы с Capybara?

Я попытался зарегистрировать драйвер селена для Firefox с помощью приведенного ниже фрагмента. На самом деле я хочу установить настроенный пользовательский агент, но похоже, что после запуска браузера пользовательский агент не такой, как я ожидал. Может кто-нибудь посмотреть, если что-то не так? Большое спасибо

Я запускаю это с * Геккондрайвер 0.24 * Firefox версии 67.0 * Капибара 3.18.0 * Гем Selenium WebDriver 3.142.3

Capybara.register_driver :selenium do |app|
browser = ENV['BROWSER']
  browser_sym = browser.to_sym

  options = {
    browser: browser_sym,
  }
if browser == :firefox
    profile = Selenium::WebDriver::Firefox::Profile.new
    profile['browser.download.folderList'] = 2   
    profile['browser.helperApps.neverAsk.saveToDisk'] = 'text/csv'
    profile['dom.max_script_run_time'] = Configuration['browser']['wait_time']
    profile['general.useragent.override'] = 'customized user-agent' 
    profile['dom.max_chrome_script_run_time'] = Configuration['browser']['wait_time']
    profile['dom.max_script_run_time'] = Configuration['browser']['wait_time']
    options[:profile] = profile 
elsif browser == :chrome 
.....
end 
Capybara::Selenium::Driver.new(app, options)

Перейдите в запущенный браузер и проверьте результат возврата из консоли разработчика Firefox с помощью команды navigator.userAgent, и он возвращает значение по умолчанию, а не настроенный пользовательский агент.

Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Шаг 1: Создание приложения Slack Чтобы создать Slackbot, вам необходимо создать приложение Slack. Войдите в свою учетную запись Slack и перейдите на...
1
0
574
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Чтобы установить пользовательский агент в профиле Firefox, ваши условные выражения должны в конечном итоге разрешить что-то вроде

Capybara.register_driver :ff do |app|
  profile = Selenium::WebDriver::Firefox::Profile.new
  profile['general.useragent.override'] = 'Random User Agent'

  opts = Selenium::WebDriver::Firefox::Options.new(profile: profile)

  Capybara::Selenium::Driver.new(app, browser: :firefox, options: opts)
end

Вы можете запустить его самостоятельно, используя код https://gist.github.com/twalpole/2f69984a5c6063aab04ea25c0aa3d2ca.

Другие вопросы по теме