Как избежать потери объекта драйвера?

Я пытаюсь перевести нашу автоматизацию тестирования с watir-classic на watir-webdriver. (Ruby 2.0, watir-webdriver 0.9.1), который в целом работает нормально, но наш процесс входа в систему вызывает головную боль.

Позвольте мне кратко объяснить, что происходит:

  • Открытый сайт А
  • Введите учетные данные и нажмите кнопку входа.
  • Веб-сайт B открывается с фактическим содержанием, а веб-сайт A закрыт.

С закрытием веб-сайта A драйвер также теряется, и в настоящее время я не могу создать новый экземпляр драйвера для подключения к веб-сайту B.

когда я пытаюсь создать экземпляр следующего объекта страницы, я получаю:

имя переменной ="@exception" kind="instance" value="Невозможно получить браузер" type="Selenium::WebDriver::Error::NoSuchWindowError"

Я делаю это путем:

  def click_loginbtn
    @@driver.button(id: 'loginBtn').click
    return ProjectList.new(@@driver)
  end

У кого-нибудь есть хорошая идея для этого?

1 ответ

Решение

Ваш драйвер все еще активен, вам просто нужно получить доступ к новому окну.

Чтобы получить список доступных активных окон:

@browser.windows

Вы можете переключиться в другое окно по дескриптору, названию, URL, индексу или коллекции

@browser.window(title: 'My new window').use
@browser.windows.first.use
Другие вопросы по тегам