Capybara Selenium повторно использует существующую сессию браузера вместо открытия новых окон? - PullRequest
0 голосов
/ 06 мая 2019

В Capybara, Как я могу возобновить работу существующего браузера, чтобы продолжить выполнение шага дальше. Вместо того, чтобы начинать новую сессию и открывать новую ветреную ветку, а затем пробежите тонну шага раньше.

Например: Во-первых:

session =  Capybara::Session.new(:headless_chrome, Capybara.app)
session.open(url)
session.click(...)
sesion.quit()

Второй раз:

session =  ...#retry the first session state
sesion.do_something()

1 Ответ

1 голос
/ 06 мая 2019

Capybara разработан как инструмент тестирования, где вы хотите, чтобы каждый тест был полностью независим от других тестов. Из-за этого он не поддерживает сохранение / перезагрузку сеанса и использует свежий экземпляр браузера (data-dir и т. Д.) Для каждого сеанса. Чтобы предотвратить создание совершенно новой настройки браузера при каждом создании нового сеанса, вы можете указать собственную опцию --user-data-dir=<some_directory> при регистрации драйвера Capybara, но это не поддерживается Capybara (и на самом деле это не очень хорошая идея, если вы на самом деле делает тестирование, а не веб-соскоб). Другой вариант, если все, что вам действительно нужно, это то, что сохраненные куки будут выглядеть примерно так: https://github.com/kyamaguchi/capybara-sessionkeeper (опять же, плохая идея, если вы тестируете, так как тесты связаны друг с другом).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...