2016-09-01 2 views
0

Я делаю автоматическое тестирование с помощью webdriverio и mocha. Если окно браузера закрыто во время выполнения моих автоматических тестов, я хочу закончить процесс, а не продолжать выполнять мои тесты. Есть ли способ обнаружить закрытие браузера? Я вижу информацию в журналах селена, но я не знаю, как это обнаружить в моем подлинном скрипте узла. Вот ошибка в журнале сервера селена:Webdriverio - Как обнаружить закрытое окно браузера

12: 33: 17.122 WARN - Исключение выбрано org.openqa.selenium.NoSuchWindowException: Окно не найдено. Возможно, окно браузера было закрыто.

ответ

1

вы можете проверить, существует ли еще сессия, используя client.sessions(). Вы можете использовать этот

describe('check if session still exist', function() { 

    it('should check if session still exist', function() { 
    return browser.sessions().then(function(sessionid){ 
    var id1 = sessionid 
    console.log(id1); 
     }); 
    }); 
}); 

Если нет сессии выше будет возвращать

{ state: 'success', 
    sessionId: null, 
    hCode: 1944289324, 
    value: [], 
    class: 'org.openqa.selenium.remote.Response', 
    status: 0 } 

в противном случае он будет возвращать что-то вроде этого

state: 'success', 
    sessionId: null, 
    hCode: 381733075, 
    value: 

    [ { capabilities: [Object], 
     id: '8ec2e2e8-6833-4105-8b84-1a6ce74a29ff', 
     hCode: 1337873045, 
     class: 'org.openqa.selenium.remote.server.handler.GetAllSessions$SessionInfo' } ], 
    class: 'org.openqa.selenium.remote.Response', 
    status: 0 } 

затем в нужном месте в коде на основе выше value Объект json, вы можете выбрать, чтобы завершить процесс.

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