55

Estoy usando Selenium para automatizar las pruebas. Mi aplicación utiliza exclusivamente IE, no funcionará en otros navegadores.El ejecutable del controlador debe configurarse mediante la propiedad del sistema webdriver.ie.driver

Código:

import org.openqa.selenium.ie.InternetExplorerDriver; 
import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 

public class Test { 
    public static void main(String[] args) { 
     final String sUrl = "http://www.google.co.in/";        
     System.setProperty("webdriver.chrome.driver","C:\\Users\\vthaduri\\workspace\\LDCSuite\\IEDriverServer.exe"); 
     WebDriver oWebDriver = new InternetExplorerDriver(); 
     oWebDriver.get(sUrl); 
     WebElement oSearchInputElem = oWebDriver.findElement(By.name("q")); // Use name locator to identify the search input field. 
     oSearchInputElem.sendKeys("Selenium 2"); 
     WebElement oGoogleSearchBtn = oWebDriver.findElement(By.xpath("//input[@name='btnG']")); 
     oGoogleSearchBtn.click(); 

     try { 
      Thread.sleep(5000); 
     } catch(InterruptedException ex) { 
      System.out.println(ex.getMessage()); 
     } 
     oWebDriver.close(); 
    }  
} 

Y aquí es el error que estoy recibiendo

La ruta de acceso al ejecutable del controlador debe ser fijado por la propiedad del sistema webdriver.ie.driver; para más información, vea https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver. La última versión se puede descargar de http://www.seleniumhq.org/download/ 12 de junio de 2012 4:18:42 PM org.apache.http.impl.client.DefaultRequestDirector tryExecute INFORMACIÓN: Excepción de E/S (java.net.SocketException) capturada al procesar la solicitud: software causado anulación de la conexión: recv no 12 Jun, 2012 4:18:42 PM org.apache.http.impl.client.DefaultRequestDirector tryExecute

Puede alguien me ayude en esto?

+1

No estoy seguro de por qué no puedo publicar una respuesta para esto, pero también puede solucionar esto especificando la ubicación de la carpeta dentro del valor del entorno PATH en la máquina en cuestión. Esto es útil si lo desea o tiene que tener los archivos almacenados en diferentes lugares en diferentes máquinas en diferentes entornos – MorkPork

+0

Reemplace la línea System.setProperty ("webdriver.chrome.driver", "C: \\ Users \\ vthaduri \\ espacio de trabajo \\ LDCSuite \\ IEDriverServer.exe "); por System.setProperty ("webdriver.ie.driver", "C: \\ Users \\ vthaduri \\ workspace \\ LDCSuite \\ IEDriverServer.exe"); –

+0

Ha establecido propiedad para chrome en lugar de IE. este es solo el problema –

Respuesta

68
  1. Necesitará el ejecutable de InternetExplorer en su sistema. Así que descárguelo de la fuente insinuada (http://www.seleniumhq.org/download/) descomprímalo y coloque en algún lugar donde pueda encontrarlo. En mi ejemplo, supondré que lo colocará en C:\Selenium\iexploredriver.exe

  2. Luego debe configurarlo en el sistema.Aquí está el código de Java pegado de mi proyecto Selenio:

    File file = new File("C:/Selenium/iexploredriver.exe"); 
    System.setProperty("webdriver.ie.driver", file.getAbsolutePath()); 
    WebDriver driver = new InternetExplorerDriver(); 
    

Básicamente, usted tiene que establecer esta propiedad antes inicializar controlador

+0

Nota al margen: estoy usando Chrome, por lo que es probable que el código requiera algunos ajustes. Especialmente la parte init de IE –

+0

Ya he agregado el código en mi programa. Mira mi código en la pregunta. Pero no estoy seguro de cómo deshacerse de System.setProperty ("webdriver.chrome.driver", "C: \\ Users \\ vthaduri \\ workspace \\ LDCSuite \\ IEDriverServer.exe"); WebDriver oWebDriver = new InternetExplorerDriver(); – vkrams

+1

simplemente reemplace el 'webdriver.chrome.driver' con' webdriver.ie.driver' y debería funcionar –

13

Está configurando la ruta para Chrome, no IE. El mensaje de error dice

"La ruta al ejecutable del controlador debe establecerse directamente en el hotel webdriver.ie.driver sistema;"

Sin embargo se está configurando "webdriver.chrome.driver".

Debe establecer "webdriver.ie.driver" en la ubicación del archivo cuando usa InternetExplorerDriver.

Puede establecer estas propiedades en su cáscara/MVN/IDE con el -DpropertyName = Valor

-Dwebdriver.ie.driver="C:/.../IEDriverServer.exe" 

Es necesario utilizar comillas porque de espacios o barras en su camino, como alternativa revertir las barras de otra forma se son prefijo de escape.

También es posible usar

System.setProperty("webdriver.ie.driver","C:/.../IEDriverServer.exe"); 

dentro de su código.

+1

Sí, este es el error. Ha escrito el código como: System.setProperty ("webdriver.chrome.driver", "C: \\ Users \\ vthaduri \\ workspace \\ LDCSuite \\ IEDriverServer.exe"); Utilice "webdriver.chrome.driver" en lugar de "webdriver.chrome.driver" –

0

Tendrá que tiene que descargar InternetExplorer ejecutable del controlador en su sistema, descárguelo de la fuente (http://code.google.com/p/selenium/downloads/list) después de la descarga, descomprímalo y colóquelo en algún lugar de su computadora. En mi ejemplo, voy a colocarlo en D: \ iexploredriver.exe

entonces usted tiene escribir a continuación código en su clase principal Eclipse

System.setProperty("webdriver.ie.driver", "D:/iexploredriver.exe"); 
    WebDriver driver = new InternetExplorerDriver(); 
0

Para la primavera:

File inputFile = new ClassPathResource("\\chrome\\chromedriver.exe").getFile(); 
System.setProperty("webdriver.chrome.driver",inputFile.getCanonicalPath()); 
2

que sólo hay que poner el controlador archivos directamente en mi proyecto para no tener ninguna dependencia a mi máquina local.

final File file = new File("driver/chromedriver_2_22_mac"); 
System.setProperty("webdriver.chrome.driver", file.getAbsolutePath()); 

driver = new ChromeDriver(); 
Cuestiones relacionadas