Перейти к содержимому

Фотография

Не очищаются логи браузера - отлавливание JS errors


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 5

#1 elvis

elvis

    Постоянный участник

  • Members
  • PipPipPip
  • 189 сообщений
  • Город:Tallinn


Отправлено 26 апреля 2016 - 09:20

Java 8

Selenium 2.53.0

Selenide 3.5.1

ChromeDriver в docker контейнере http://testcontainer...ver_containers/ (т.е. подключение к RemoteWebDriver) 

 

Привет всем. Столкнулся с тем, что браузер не очищает логи. То есть если обновить страницу или вообще открыть новую закладку - ошибки  javascript которые присутствуют в логе никуда не уходят и следующий тест, который делает проверку логов, соответственно падает. Получаю логи от RemoteWebDriver'а следующим образом.

LogEntries logs =WebDriverRunner.getWebDriver().manage().logs().get("browser");
List<LogEntry> severe = logs.filter(Level.SEVERE);

Кто подскажет в какую сторону копать? Из того, что я нагуглил, я так понимаю универсального подхода к отлавливанию JS ошибок нет в природе и приходится для каждого браузера прикручивать своё кастомное решение вручную. Тот же метод Selenide.assertNoJSErrors() не отлавливает вообще ничего (во всяком случае с Google Chrome), а там реализована инъекция 

executeJavaScript("return window._selenide_jsErrors");

  • 0

#2 checo

checo

    Опытный участник

  • Members
  • PipPipPipPip
  • 400 сообщений
  • Город:Н.Новгород

Отправлено 26 апреля 2016 - 16:50

Может быть, особенность хрома? Попробуйте в FireFox, у меня там ранее полученные записи очищались на каждый get(), а вот с хромом вообще нормальных логов не было.


  • 0

#3 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 28 апреля 2016 - 09:15

А можете показать пример стектрейса падения. Может там из-за другого падает?


  • 0

#4 elvis

elvis

    Постоянный участник

  • Members
  • PipPipPip
  • 189 сообщений
  • Город:Tallinn


Отправлено 28 апреля 2016 - 12:45

А чего показывать-то.. в первом тестовом методе, как и ожидается вываливается ошибка в лог  аля [SEVERE] POST https://..... 401 (Unauthorized) (негативный тест). В следующем тестовом методе я делаю необходимые проверки и в @Rule TestWatcher после success проверяю логи браузера. Там обнаруживается всё та же запись, которая была проигнорирована в первом тесте (как по сценарию и положено). Почему лог не очистился после refresh на странице - непонятно. Пробовал чистить кэш, чистить local storage, уходить вообще на левый домен вроде www.google.com - глухо. Логи остаются и с каждым следующим запросом ошибки там только накапливаются. 

 

Стоит упомянуть, что testcontainers подгружает докеровский образ selenium/standalone-chrome-debug:2.53.0 . Возможно проблема в этом?


  • 0

#5 DmitriyQA

DmitriyQA

    Постоянный участник

  • Members
  • PipPipPip
  • 183 сообщений
  • ФИО:Коваленко Дмитрий Владимирович
  • Город:Tel Aviv

Отправлено 02 мая 2016 - 07:23

На данный момент я не нашел возможности очистить консоль либо даже кеш браузера чере web driver API. Есть воркэраунд - для каждого теста создавать новый инстанс браузера, он автоматически будет с новым профилем и полностью чистым. Если есть необходимость быть в одной сессии, попробуйте копировать кукиес из предыдущей сессии и открывать новую с этой кукой. 


  • 0

Senior QA/ Wix.com / qaacademy.net


#6 elvis

elvis

    Постоянный участник

  • Members
  • PipPipPip
  • 189 сообщений
  • Город:Tallinn


Отправлено 02 мая 2016 - 07:39

Новый инстанс для докера означает, что надо убивать весь контейнер и запускать его заново, что неизбежно приведёт к задержкам. Теоретически можно запускать параллельно несколько контейнеров и переключаться между ними по мере необходимости, но что-то мне не нравится такой подход.


  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных