Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Ошибка No connection could be made because the target machine actively refused it

csharp
mstest
webdriver
Теги: #<Tag:0x00007f7b636b2f20> #<Tag:0x00007f7b636b2db8> #<Tag:0x00007f7b636b2a48>

(Эллина Кулагина) #1

Добрый день!

У меня есть несколько автотестов на WebDriver, в каждом из которых нужно при запуске открыть браузер, а в конце теста закрыть.
Тесты лежат в одном классе, который содержит TestInitialize (это аннтотации MSTest) с запуском драйвера и браузера:

private void ChooseBrowser(String browser)
        {
            if (driver == null)
            {
                if ("firefox".Equals(browser))
                {
                    driver = new FirefoxDriver();
                }
              
                driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(30));
            }

и TestCleanup с остановкой драйвера:

public void Stop()
        {
            driver.Quit();
            driver = null;
        }

Если я запускаю тесты по одиночке (запускаю у себя на машине), то все проходит отлично.
Но если я запускаю несколько тестов подряд, то проходит только первый, остальные валятся с ошибкой:

OpenQA.Selenium.WebDriverException: Unexpected error. System.Net.WebException: Unable to connect to the remote server —> System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it [::1]:59780
at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)

При чем во втором и следующих тестах бразер открывается и переходит на страницу логина, а у же на ней сваливается с ошибкой.
Такое поведение в Chrome и Firefox, в других браузерах не пробовала.

Посоветуйте, что-нибудь, пожалуйста.


Selenium: Unable to connect to the remote server
(Dmytro Makhno) #2

Note: Советую для кода использовать констркуцию

` - бэк тик.


(Эллина Кулагина) #3

Спасибо, исправила.


(Dmytro Makhno) #4
OpenQA.Selenium.WebDriverException: Unexpected error. System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it [::1]:59780
at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)

Это сообщение, как правило, обозначает что броузера уже нет.

Советую добавить логирование на стоп и старт броузера и посмотреть нету ли кого-то кто грохает ваш брозер не вовремя.
Увы с самим MsTest оочень давно не работал, очень попафикате на не thread-safe операции.

Увы очень мало той нарезки что вы кинули, для точного диагноза.
Я бы попробовал также, ложить driver в TestContext инстанц, он поидее долже быть более thread safe. Но не попробуешь - не узнешь.


(Эллина Кулагина) #5

Странно, но браузер как раз есть, я его вижу :smile:
Но попробую добавить логи и посмотреть что там творится, спасибо.


(Oleg Tarusov) #6

Открывайте браузер в каждом тесте:


}```