Откройте новое приватное окно с капибарой и селен-вебдрайвером - PullRequest
0 голосов
/ 01 октября 2018

Как я могу открыть 2 окна одновременно, но одно в приватном режиме?

Метод капибары ( ссылка )

open_new_window

открывает новое окно, но неНе принимаю никаких параметров.

Также пробовал:

    page.execute_script 'window.open(link, "mywindow", "private=yes");'

Но все равно новое окно не в приватном режиме.

Я использую:

  • капибара (2.11.0)
  • selenium-webdriver (2.53.4)
  • Firefox v46

Есть идеи?

1 Ответ

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

Чтобы иметь окно частного режима и окно не частного режима, вам необходимо иметь два сеанса и две регистрации драйверов.В текущих версиях Capybara, selenium-webdriver и Firefox с ручным управлением сеансами это можно сделать как

Capybara.register_driver :selenium_firefox_private do |app|
  firefox_options = ::Selenium::WebDriver::Firefox::Options.new
  firefox_options.args << "-private"
  Capybara::Selenium::Driver.new(app, browser: :chrome, options: firefox_options)
end

, а затем в тесте, когда вам нужно личное окно, вы создадите новые сеансы дляличное окно

# Assuming you already have a session going and are interacting with the page
# with `Capybara.javascript_driver = :selenium` or equivalent set
page.find(...) # everything called on page is happening in the original non-private session

private_session = Capybara::Session.new(:selenium_firefox_private, Capybara.app)
private_session.visit(...) # anything called on private_session will happen in the private firefox instance

Другой вариант будет использовать Capybaara.using_driver

Capybara.using_driver(:selenium_chrome_private) do
  # everything in this block would happen in a private browsing session that is auto created by Capybara (if it hadn't already been created)
  page.visit('/')
end

То же самое верно для устаревших версий, которые вы используете, но конфигурация Selenium в регистрации драйвера будетвероятно, будет другим.

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