Справка по handsontable дает такую информацию
https://handsontable.com/docs/7.3.0/demo-copy-paste.htmlв коде я работают следующим образом
выбираю все записи таблицу, которую хочу скопировать
Given(/^Select the whole table$/) do
page.execute_script("#{$ghot}.selectAll()")
end
$ghot - глобальная переменная в которой хранится имя переменной js для этой таблицы
Given(/^Copy to clipboard "(.*?)"$/) do |id|
#p page.evaluate_script("$(document))
result = page.evaluate_script("window.document.execCommand('copy')")
p result
end
далее идет попытка скопировать в в буфер обмена, пробовали
document.execCommand('copy') - в консоле все работает
но в ходе исполнения теста нет :(
хотя результат выдает true, но клипборд не обновляется, т.е. команда не срабатывает
На stackflow было написано, что возможно драйвер нужно настроить особым образом
добавил в файле окружения
options = Selenium::WebDriver::Chrome::
Options.new options.add_preference('profile.content_settings.exceptions.clipboard', {
'*': {'setting': 1}
})
Capybara::Selenium::
Driver.new(app, browser: :chrome, options: options)
а в коде теста пытался сделать такую настройку страницы
Given(/^Grant clipboard$/) do
page.driver.browser.execute_cdp('Browser.grantPermissions', origin: page.server_url, permissions: ['clipboardRead', 'clipboardWrite'])
end
но ругается на параметры
Given Grant clipboard # features/step_definitions/test_steps.rb:145
invalid argument: Invalid parameters
(Session info: chrome=79.0.3945.130) (Selenium::WebDriver::Error::InvalidArgumentError)
Пока не разобрался
с send_keys тоже не получается и похоже capybara не дает работать с буфером по горячим клавишам.
Можем реализовать копирование (а потом и вставку) на уровне скрипта - но это уже будет не совсем то, что требуется тестировать :)