driver.manage () журналы () получить ( "браузер")..;не работает при повторном вызове - PullRequest
0 голосов
/ 05 марта 2019

Я пытаюсь захватить журналы консоли браузера Chrome с помощью селена webdriver.Я использовал приведенный ниже метод дважды в методе @Test.Он возвращает журналы консоли, когда он выполняется в первый раз, но когда я вызываю его снова, он возвращает пустую запись журнала.

public String getConsoleLogs(WebDriver driver)
{
     String consoleError="";
     LogEntries log=driver.manage().logs().get("browser"); 
     for(LogEntry entry:logs.getAll())
            {
                  consoleError+=entry.toString()
             }
     return consoleError;
}

Редактировать: Изменен код, чтобы прояснить мою проблему.Когда этот метод вызывается во второй раз, consoleError является пустой строкой.

Ответы [ 3 ]

0 голосов
/ 05 марта 2019

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

 for (LogEntry entry : driver.manage().logs().get(LogType.BROWSER)) {
        String msg = entry.getMessage();
        System.err.println("Message: " + msg);
    }
0 голосов
/ 21 июня 2019

Цитирование документов Webdriver:

Обратите внимание, что буферы журнала сбрасываются после каждого вызова, что означает, что доступные записи журнала соответствуют тем записям, которые еще не возвращены для данного типа журнала.На практике это означает, что этот вызов вернет доступные записи журнала с момента последнего вызова или с начала сеанса.

Если это не соответствует вашим потребностям, вам нужно нажатьзаписывает их в стек после прочтения, чтобы вы могли обратиться к ним позже.

0 голосов
/ 05 марта 2019

Тип возврата driver.manage().logs().get("browser"); - LogEntries, а не String Просто измените его

public LogEntries getConsoleLogs(WebDriver driver) {
    return driver.manage().logs().get("browser");
}

У вас есть все записи в журнале, а затем необходимо выполнить итерацию всякий раз, когда вы хотите

Например

for (LogEntry entry : getConsoleLogs(driver)) {
        System.out.println(entry.getMessage());
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...