Я работаю над набором интеграционных тестов для последовательности oauth dropbox, которая заканчивается серией из 302 перенаправлений, последним из которых является пользовательский протокол / схема. В мобильном приложении все работает так, как ожидалось, что имитирует тестирование, и все, что не работает в интеграционных тестах.
Среда тестирования работает на сервере Ubuntu (без графического интерфейса) и не использует xvfb.
Объективно, мне на самом деле не нужно следовать пользовательскому URI протокола, мне просто нужно получить доступ к URI, чтобы подтвердить, что содержимое соответствует ожиданиям.
Я перепробовал все, что мог придумать, чтобы получить доступ к URI, содержащему пользовательскую схему, изнутри watir / selenium, но все ссылки, которые я могу найти, говорят о том, что основная деталь намеренно скрыта замыслом.
Я также попробовал все варианты, которые я могу найти для создания собственного обработчика протокола в профиле Firefox, но, что бы ни случилось, скрипт не вызывается.
В журналах watir / selenium не осталось ничего полезного.
Есть мысли?
Фрагмент пользовательского протокола:
# initialise headless
headless = Headless.new( reuse: false )
headless.start
# initialise profile
profile = Selenium::WebDriver::Firefox::Profile.new
profile[ 'general.useragent.override' ] = 'agent'
profile[ 'network.protocol-handler.app.biscuit' ] = '/usr/bin/biscuit'
profile[ 'network.protocol-handler.external.biscuit' ] = true
profile[ 'network.protocol-handler.expose.biscuit' ] = true
profile[ 'network.protocol-handler.warn-external.biscuit' ] = false
# initialise client
client = Selenium::WebDriver::Remote::Http::Persistent.new
# initialise browser
browser = Watir::Browser.new :firefox, profile: profile, accept_insecure_certs: true, http_client: client
# run dropbox authentication cycle
# cleanup
browser.close
headless.destroy