Кажется, что driver.manage.window.resize_to (...) изменяет размер окна, но фактически не меняет размер области просмотра, если была установлена возможность device_metrics:
options = Selenium::WebDriver::Chrome::Options.new
options.add_emulation(device_metrics: { width: 1440 , height: 6000, touch: false })
(...)
@driver = Selenium::WebDriver.for :chrome, options: options
(...)
driver.manage.window.resize_to(min_width, min_height)
width = driver.execute_script("return document.documentElement.clientWidth") # => 1440
height = driver.execute_script("return document.documentElement.clientHeight") # => 6000
То же самое не происходит, если возможность не установлена. В этом случае размер окна корректно изменяется.
Также, если браузер не запущен в режиме без головы, окно выглядит странно и совпадает с тем фактом, что Chrome все еще думает, что его размер окна составляет 1440x6000, но фактическое окно, отображаемое на экране, представляет собой только верхнюю левую часть (например, адресная строка разрезана пополам).
Я хотел сделать это так, чтобы можно было сохранить полностраничный снимок экрана, поскольку если он длиннее, чем умещается на экране, driver.manage.window.resize_to не будет изменять размер окна до значения, превышающего ширину экрана.