2012-03-28 15 views
19

he extraído el siguiente código de IDE selenio. (C# control remoto)No conexión podría hacerse porque la máquina de destino la rechazó activamente (selenio)

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"); 
    } 
} 
} 

i creado un formulario web y añadido un botón allí.

en el evento de clic de botón que escribí este código

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

i incluido todos los archivos .dll. funciona bien (sin errores ni advertencias).

pero después de hacer clic en el botón que estoy recibiendo el siguiente error

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

lo que debo hacer ??

gracias de antemano ..

Nota para los espectadores: Este post puede ayudar a: No connection could be made because the target machine actively refused it

Respuesta

8

"... el equipo de destino la rechazó activamente" significa que el servidor podría ser alcanzado y responde más dentro de el tiempo de espera, pero el puerto especificado no estaba abierto. Esto puede deberse a varias razones, p. un firewall local que bloquea la conexión. ¿Estás seguro de que el servidor está escuchando en el IP/puerto correcto?

+0

ese número de puerto (4444) Tengo defaultly de IDE selenio. –

+0

El puerto no tiene por qué ser incorrecto, pero aún así puede estar bloqueado (por ejemplo, algunos cortafuegos personales bloquearán todas las conexiones TCP/IP locales a/desde el host local). ¿Has intentado acceder utilizando alguna herramienta simple como ssh o telnet? – Mario

+0

de alguna manera ahora el error se cambia a "No se puede conectar al servidor remoto". lo wats? –

3

Para añadir más claridad para los lectores: Iniciar servidor de selenio utilizando los siguientes pasos básicos:

  • Descargar selenio -server independiente desde el selenio oficial para descarga página.
    • Abrir el símbolo del sistema.
    • Navegue a la carpeta usando "Cd".
    • Agregue este comando: "java - jar".
    • Presiona enter.
    • El servidor Selenium se iniciará.
+0

Hola Das. Gracias por su respuesta. Lo mismo que usted dijo anteriormente se explica claramente aquí: http://coding-issues.blogspot.com/2012/11/no-connection-could-be-made-because.html –

+1

Para mí, esta era la solución. cmd y luego java -jar selenium-server-standalone-2.35.0.jar – StacyM

0

Asegúrese de que la máquina remota en la que las secuencias de comandos se van a ejecutar es correcta y funciona. En segundo lugar, asegúrese de que chrome driver y chrome estén actualizados. Por último, ningún firewall está bloqueando su acceso a la máquina remota.

PD: Cierre manualmente el servidor de selenio y reinícielo.

3

Me sale el mismo error, pero en una línea de código diferente. Con suerte, esto podría ayudar a alguien en algún lugar, incluso si no responde la pregunta inicial.

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

estoy usando el WebDriver (que no se ejecutan el servidor de selenio), y el constructor de FirefoxDriver produce la excepción.

veces me siento esta excepción:

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 

con esta pila de llamadas:

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# 

veces me siento esta excepción:

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 

con esta pila de llamadas:

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] 

Pero una cosa que no me di cuenta al principio es que si continúas la ejecución (F5), todo está bien. La excepción debe manejarse en el WebDriver.

Lo único es que tuve DEBUG/Exceptions/CLR Exceptions: Thrown [checked]. Simplemente desmárquelo y todo funciona sin tirar/romper. Me tomó un tiempo darme cuenta de eso. Las sobras de una sesión de depuración anterior ...

1

Lo obtuve porque una parte de mi código contiene una referencia a un controlador obsoleto.

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

var x = driver1.FindElements(...); 
1

Esta es la forma en que lo hago, la estructura de mi clase.

[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 ... 
     } 
} 

actualmente estoy usando V3.6.0 Selenium.Support y V3.6.0 Selenium.WebDriver. Disponer el WebDriver fijado mi problema

No se ha podido establecer conexión porque el equipo de destino de forma activa rechazó 127.0.0.1:4444

+0

'Salir' ya llama' Dispose' debajo del capó.Y todavía tengo el problema, incluso si lo hago. – outring

Cuestiones relacionadas