Как избежать потери объекта драйвера?
Я пытаюсь перевести нашу автоматизацию тестирования с 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