t.me/atinfo_chat Telegram группа по автоматизации тестирования

Перехват console.log с помощью selenium+java

logging
java
selenium
webdriver
Теги: #<Tag:0x00007fb3029c9138> #<Tag:0x00007fb3029c8328> #<Tag:0x00007fb3029cff88> #<Tag:0x00007fb3029cf9e8>

(Артем Бочаров) #1

Проблема (Вопрос) заключается …

Я попытался сделать перехват консолей браузера с помощью стандартных инструментов селениума - https://comaqa.gitbook.io/selenium-webdriver-lectures/selenium-webdriver.-problemnye-momenty/loggirovanie-v-selenium-webdriver

У меня получилось перехватить сообщения консоли бразера, для которых присвоены уровни info, warning, severe и т.д

У меня не получилось перехватить сообщения консоли, которые заданы в консоли фронтенда как console.log(msg). Во время перехвата из буд то не существует, но в консоли браузера они отображаются как

Код по примеру из ссылки выше.


(Сергей Кузьмин) #2

как говорят works for me - по крайней мере с remote driver:

(void) executeScript("console.log(arguments[0].value) ; console.log('just test') ;  return arguments[0].value", element);
	}

получаю

Analyze log:
Tue Mar 17 18:41:32 EDT 2020 INFO console-api 2:32 "18:41:32"
Tue Mar 17 18:41:32 EDT 2020 INFO console-api 2:66 "just test"
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 8.6

(Vladislav Abramov) #3

а пример кода можете привести, пожалуйста?


(Сергей Кузьмин) #4

извольте сударь - это (tree/master/remote_browser_log ) одна из директорий большего проекта


учтите я тест этот привожу в чувтво


(Сергей Кузьмин) #5

завел отдеьный проект https://github.com/sergueik/remote_browser_logs учтите с 3.14 похоже неработает


(Михаил Новицкий) #6
public Events(WebDriver driver, boolean httpsIgnore) {

        Logs logs = driver.manage().logs();
        String logType = LogType.BROWSER;
        LogEntries logEntries = logs.get(logType);

        List<LogEntry> all = logEntries.getAll();

        for (LogEntry logEntry : all) {

            System.out.println(logEntry);

            //httpsIgnore = all.get(i).getMessage().contains("\"https:");

            if (logEntry.getMessage().contains("google event:")) {

                String line = logEntry.getMessage();

                JsonObject object = getJsonFromLogLine(line);

                setEvent(object);
            }
        }

    }

Уменя все получает, в том числе и console.log