2015-11-02 6 views
0

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

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

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

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

, когда я пытаюсь сделать создать экземпляр следующее pageobject, я получаю:

variable name="@exception" kind="instance" value="Unable to get browser" 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 
+0

Привет Titus, спасибо за ответ , Именно это, плюс раздел реестра, который мне нужно добавить для IE 11. HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BFCACHE. Обратите внимание, что подраздел FEATURE_BFCACHE может быть или не быть, и должен быть создан, если он отсутствует. Внутри этого ключа создайте значение DWORD с именем iexplore.exe со значением 0. Иногда это так просто. –

Смежные вопросы