Я использую selenoid для удаленного тестирования браузера в ruby. В этом случае я использую selenium-webdriver, capybara, rspec для автоматизации. И я использую метод attach_file для загрузки файла в браузер. Я хочу загрузить файл в браузере Firefox и Chrome, но это вызывает ошибку в обоих случаях;
В хроме
Selenium :: WebDriver :: Error :: UnknownCommandError: неизвестная команда: неизвестная команда: сеанс / *** 8d32e045e3 *** / se / file
В firefox
неожиданный токен в "HTTP-метод не разрешен"
Итак, после поиска я нашел решение для chrome, которое должно установить параметр w3c false в caps ['goog: chromeOptions'] ›caps ['goog: chromeOptions'] = {w3c: false} Итак, теперь Chrome использует мост OSS для подтверждения связи, но я не знаю, как это сделать в Firefox. Подобное решение недоступно для Firefox. Возможности моего браузера следующие:
if ENV['BROWSER'] == 'firefox'
caps = Selenium::WebDriver::Remote::Capabilities.new
caps['browserName'] = 'firefox'
# caps['moz:firefoxOptions'] = {w3c: false} ## It is not working
else
caps = Selenium::WebDriver::Remote::Capabilities.new
caps["browserName"] = "chrome"
caps["version"] = "81.0"
caps['goog:chromeOptions'] = {w3c: false}
end
caps["enableVNC"] = true
caps["screenResolution"] = "1280x800"
caps['sessionTimeout'] = '15m'
Capybara.register_driver :selenium do |app|
Capybara::Selenium::Driver.new(app, browser: :remote,
:desired_capabilities => caps,
:url => ENV["REMOTE_URL"] || "http://*.*.*.*:4444/wd/hub"
)
end
Capybara.configure do |config|
config.default_driver = :selenium
end