Соединение не может быть выполнено, потому что целевая машина активно отказалась от него (селен)

20

Я извлек следующий код из Selenium IDE (пульт дистанционного управления c #)

using System;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using NUnit.Framework;
using Selenium;

namespace SeleniumTests
{
[TestFixture]
public class MyFirstVCTest
{
    private ISelenium selenium;
    private StringBuilder verificationErrors;

    [Test]
    public void TheNewTest()
    {
        selenium.Open("/");
    } 

    [SetUp]
    public void SetupTest()
    {
        selenium = new DefaultSelenium("localhost", 4444, "*chrome","http://demo.volunteercampaigns.com/");
        selenium.Start();
        verificationErrors = new StringBuilder();
    }

    [TearDown]
    public void TeardownTest()
    {
        try
        {
            selenium.Stop();
        }
        catch (Exception)
        {
            // Ignore errors if unable to close the browser
        }
        Assert.AreEqual("", verificationErrors.ToString());
    }

    [Test]
    public void TheMyFirstVCTest()
    {
        selenium.Open("/?AspxAutoDetectCookieSupport=1");
        selenium.Click("link=Login");
        selenium.WaitForPageToLoad("30000");
        selenium.Type("id=ctl00_ContentPlaceHolder1_txtEmailAddress", "[email protected]");
        selenium.Type("id=ctl00_ContentPlaceHolder1_txtPassword", "orbs123");
        selenium.Click("id=ctl00_ContentPlaceHolder1_btnlogin");
        selenium.WaitForPageToLoad("30000");
        selenium.Click("id=ctl00_lblUserName");
        selenium.Click("id=ctl00_lnkSignOut");
        selenium.WaitForPageToLoad("30000");
    }
}
}

я создал веб-форму и добавил там кнопку.

в событии нажатия кнопки я написал этот код

SeleniumTests.MyFirstVCTest m = new SeleniumTests.MyFirstVCTest();
    m.SetupTest();
    m.TheMyFirstVCTest();
    m.TeardownTest();

i включил все DLL-файлы. (без ошибок и предупреждений).

, но после нажатия кнопки я получаю следующую ошибку

No connection could be made because the target machine actively refused it 127.0.0.1:4444

что я должен делать?

спасибо заранее.

Примечание для зрителей . Этот пост может помочь вам: Никакое соединение не может быть сделано, потому что целевой компьютер активно отказался от него

    
задан Ranadheer Reddy 28.03.2012 в 09:23
источник

6 ответов

8

"... целевая машина активно отказалась от этого" означает, что сервер может быть достигнут и отвечать в течение таймаута, но указанный порт не был открыт. Это может иметь несколько причин, например. локальный брандмауэр блокирует соединение. Вы уверены, что сервер прослушивает правильный IP-порт?

    
ответ дан Mario 28.03.2012 в 09:28
  • , что номер порта (4444) я получил по умолчанию из Selenium IDE. –  Ranadheer Reddy 28.03.2012 в 09:47
  • Порт не должен быть ошибочным, но он все равно может быть заблокирован (например, некоторые личные брандмауэры блокируют все локальные соединения TCP / IP с локальным хостом). Вы пытались получить доступ к нему с помощью простого инструмента, такого как ssh или telnet? –  Mario 28.03.2012 в 09:49
  • как-то теперь ошибка изменилась на «Невозможно подключиться к удаленному серверу». это так? –  Ranadheer Reddy 28.03.2012 в 09:49
  • , когда я его отлаживаю, он показывает эту ошибку в selenium.start (); –  Ranadheer Reddy 28.03.2012 в 09:50
  • Это действительно сложно догадаться, но основная идея моего ответа может быть верной. Есть что-то, чтобы ваш клиентский код подключался к серверу. Вы используете какой-либо брандмауэр? Если вы запускаете что-то из среды MSVC, фактическое имя процесса, которое вы должны разрешить, может отличаться (на основе вашей версии и брандмауэра это может быть основной процесс IDE, а также некоторый файл «yourexe.vchost.exe». –  Mario 28.03.2012 в 09:51
3

Чтобы добавить больше ясности для читателей: запустите сервер selenium, выполнив следующие шаги:

  • Скачать selenium -сервер автономный от официального селена скачать стр.
    <ул>
  • Откройте командную строку.
  • Перейдите в папку, используя «Cd».
  • Добавьте эту команду: "java - jar".
  • Нажмите Enter.
  • Сервер Selenium будет запущен.
ответ дан Ayyappadas 22.07.2013 в 14:07
  • Привет, Дас. Спасибо за ваш ответ. Здесь четко объяснено то, что вы сказали выше: coding-issues.blogspot.com/2012/11/... –  Ranadheer Reddy 24.07.2013 в 08:49
  • Для меня это было решением. cmd, а затем java -jar selenium-server-standalone-2.35.0.jar –  StacyM 15.09.2013 в 04:19
3

Я получаю ту же ошибку, но на другой строке кода. Надеюсь, это может помочь кому-то, даже если оно не отвечает на начальный вопрос.

    public override void SetupTest()
    {
        Driver = new FirefoxDriver();
        base.SetupTest();
    }

Я использую WebDriver (я не запускаю сервер Selenium), а конструктор FirefoxDriver выбрасывает исключение.

Иногда я получаю это исключение:

A first chance exception of type 'System.Net.Sockets.SocketException' occurred in System.dll
Additional information: No connection could be made because the target machine actively refused it

с этим стеком вызовов:

    WebDriver.dll!OpenQA.Selenium.Firefox.Internal.ExtensionConnection.ConnectToBrowser(System.TimeSpan timeToWait) Line 247    C#
    WebDriver.dll!OpenQA.Selenium.Firefox.Internal.ExtensionConnection.Start() Line 98  C#
    WebDriver.dll!OpenQA.Selenium.Firefox.FirefoxDriver.StartClient() Line 237  C#
    WebDriver.dll!OpenQA.Selenium.Remote.RemoteWebDriver.RemoteWebDriver(OpenQA.Selenium.Remote.ICommandExecutor commandExecutor, OpenQA.Selenium.ICapabilities desiredCapabilities) Line 89    C#
    WebDriver.dll!OpenQA.Selenium.Firefox.FirefoxDriver.FirefoxDriver(OpenQA.Selenium.Firefox.FirefoxBinary binary, OpenQA.Selenium.Firefox.FirefoxProfile profile, OpenQA.Selenium.ICapabilities capabilities, System.TimeSpan commandTimeout) Line 172    C#
    WebDriver.dll!OpenQA.Selenium.Firefox.FirefoxDriver.FirefoxDriver(OpenQA.Selenium.Firefox.FirefoxBinary binary, OpenQA.Selenium.Firefox.FirefoxProfile profile, System.TimeSpan commandTimeout) Line 167    C#
    WebDriver.dll!OpenQA.Selenium.Firefox.FirefoxDriver.FirefoxDriver(OpenQA.Selenium.Firefox.FirefoxBinary binary, OpenQA.Selenium.Firefox.FirefoxProfile profile) Line 154    C#
    WebDriver.dll!OpenQA.Selenium.Firefox.FirefoxDriver.FirefoxDriver(OpenQA.Selenium.Firefox.FirefoxProfile profile) Line 132  C#
    SetupTest() Line 513    C#

Иногда я получаю это исключение:

A first chance exception of type 'System.Net.Sockets.SocketException' occurred in System.dll
Additional information: Only one usage of each socket address (protocol/network address/port) is normally permitted

с этим стеком вызовов:

    WebDriver.dll!OpenQA.Selenium.Firefox.Internal.ExtensionConnection.DetermineNextFreePort(string host, int port) Line 161    C#
    WebDriver.dll!OpenQA.Selenium.Firefox.Internal.ExtensionConnection.Start() Line 88  C#
    [same as above]

Но сначала я не понимал, что если вы продолжаете исполнение (F5), все в порядке. Исключение должно быть обработано в WebDriver.

Единственное, что я имел DEBUG / Исключения / Исключения CLR: Бросил [отмечен] . Просто снимите этот флажок, и все будет работать без броска / взлома. Понадобился время, чтобы понять это. Остатки предыдущей сессии отладки ...

    
ответ дан Thierry_S 13.05.2014 в 13:55
1

Я получил это, потому что часть моего кода содержала ссылку на устаревший драйвер.

var driver1 = new OpenQA.Selenium.Firefox.FirefoxDriver();
driver1.Close();
driver1.Quit();
driver1.Dispose();

var x = driver1.FindElements(...);
    
ответ дан Craig Celeste 15.11.2015 в 21:19
1

Так я это делаю, структура моего класса.

 [TestFixture, Parallelizable(ParallelScope.None)]
 public class UserTest : BaseTestClass
 {
            [SetUp]
            public void SetUp()
            {
                ChromeOptions options = new ChromeOptions();
                //options.AddArgument("--headless");
                options.AddArgument("--start-maximized");
                var driver = new ChromeDriver(options);
                WebDriver = WebDriverExtended.InitWebDriver(driver, driver.Url);
                WebDriver.Start();
            }

           [TearDown]
            public void Cleanup()
            {
             //Dispose after every single test, fixed the problem.
                WebDriver.Close();
                WebDriver.Quit();
                WebDriver.Dispose();
            }

      [Test]
      public void LoginTest()
      {
       //My test ...
      }
}

В настоящее время я использую Selenium.Support v3.6.0 и Selenium.WebDriver v3.6.0. Устранение проблемы с webdriver.

  

Никакое соединение не может быть выполнено, поскольку активная целевая машина   отказался от него 127.0.0.1:4444

    
ответ дан BladeMaster 20.10.2017 в 15:40
  • Выйти из вызовов Dispose под капотом. И у меня все еще есть проблема даже в этом. –  outring 21.02.2018 в 08:47
0

Убедитесь, что удаленный компьютер, на котором запускаются скрипты, работает и работает. Во-вторых, убедитесь, что на нем обновлен хром-драйвер и хром. Наконец, брандмауэр не блокирует доступ к удаленному компьютеру.

PS: Вручную закройте сервер selenium и перезапустите его.     

ответ дан Vikas Gahlaut 24.03.2014 в 09:08