Капибара: Как изменить размер окна? - PullRequest
0 голосов
/ 12 октября 2018

Кажется невероятно трудным добиться чего-то простого, например, изменить окно моего браузера с запущенным Capybara + webdriver

Я тестирую на внешнем веб-сайте.Что я хочу, чтобы максимизировать окно моего браузера.Я нашел много подсказок в Интернете, но, похоже, ничего не работает.Минимальный воспроизводимый код:

require 'capybara'
require 'selenium-webdriver'

session = Capybara::Session.new(:selenium)
window = Capybara.current_session.current_window
window.resize_to(1920,1080)
sleep(10)

Результат:

Traceback (most recent call last):
        5: from C:/src/Ruby/Capybara/minimal.rb:5:in `<main>'
        4: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/capybara-3.9.0/lib/capybara/session.rb:426:in `current_window'
        3: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/capybara-3.9.0/lib/capybara/session.rb:102:in `driver'
        2: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/capybara-3.9.0/lib/capybara.rb:519:in `block in <top (required)>'
        1: from C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/capybara-3.9.0/lib/capybara.rb:519:in `new'
C:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/capybara-3.9.0/lib/capybara/rack_test/driver.rb:18:in `initialize': rack-test requires a rack application, but none was given (ArgumentError)

Есть идеи?

1 Ответ

0 голосов
/ 12 октября 2018

Вы создаете сеанс, но затем вызываете resize для окна из другого сеанса.Этот другой сеанс является сгенерированным автоматически сеансом с использованием драйвера по умолчанию (тест стойки), который вообще не поддерживает окна.Если вы хотите сделать это с созданным вручную сеансом, это будет просто

session = Capybara::Session.new(:selenium)
session.current_window.resize_to(1920,1080)
...