Как в Selenium + С# сделать вывод информации в WindowsForm во время выполнения теста?
Здравствуйте! Написан на C# + Selenium ChromeDriver некоторый тест для своей сайта. Тест выполняется порядка пары минут. Есть приложение WindowsForm, в котором есть просто кнопка, запускающая тестирование.
Хочу браузер запускать в режиме headless. Подскажите, можно ли во время выполнения теста сделать окно моей программы WindowsForm активным и выводить в него информацию?
Т.е. я хочу сделать для себя некоторое логирование, что бы в моей программе выводился статус выполнения тестирования, что бы я мог понять, на каком этапе выполнения находится программа. На данный момент если я запускаю тестирование, то окно программы становится неактивным. Все данные, что я передаю во время выполнения теста в окно программы появляются там ТОЛЬКО после окончания теста и закрытия браузера. А мне нужно, что бы окно было активным и данные, которые я буду передавать к текстбоксы, например, обновлялись в режиме реального времени, а не по окончанию теста. Скажите, такое возможно?
Выносите ресурсоёмкие операции (такие, как работа с WebDriver) вон из основного потока. Иначе основной (графический) поток бросает всё (обработку пользовательского ввода, перерисовку окна и т.п.) и бросается делать ваш селениум. Это синхронное выполнение.
За C# не скажу, данный язык не использую. Но каждая команда по webdriver заканчивается либо результатом либо исключением. В это время мы попадаем в основной поток выполнения где и выполняем логирование как это принято на целевой платформе.
Ну у меня получается не так. Например у меня есть много команд.
1) Перейти на сайт
2) Найти определенный элемент на сайте
3) Сохранить текст элемента в переменную.
Это же 3 разные команды? Мне нужно сделать так, что бы после того, как браузер перешел на сайт и сайт полностью загрузился - в моей программе отобразился текст = Сайт загружен.
А у меня получается ,что пока все 3 пункта не будут выполнены - окно программы не становится активным и данные в программе не обновляются
itcry, я не знаю, как это делается в C#, я не C# программист. Однако все варианты кода которые мне приходилось видеть всегда вызывают цепочку команд по webdriver-у и после каждой из них можно вернуться в основной поток.
И да, это 3 разных команды. Но как их обвязаться в WindowsForm я не знаю, это нужно задавать вопрос уже по нему.