2011-04-19 12 views

Respuesta

3

de Windows sólo es compatible con la instalación de una sola versión de IE. Aunque existen algunos hacks para ejecutar múltiples versiones, estoy bastante seguro de que no conseguirás que funcionen con WebDriver (aunque me encantaría que se demuestre que estoy equivocado).

En sus zapatos, probablemente configuraría una máquina virtual de Windows para cada versión que desea probar y usar RemoteWebDriver para hablar con ellos.

+0

Sí, estaba planeando tener varias máquinas virtuales con diferentes instalaciones de IE. Programáticamente, ¿cómo puedo invocar las diferentes versiones de IE utilizando RemoteWebDriver? – sebarmeli

+0

Su código necesitaría saber qué servidor tiene qué versión de IE, y luego crear una instancia de RemoteWebDriver con la URL correcta. – jarib

+0

El sitio web de Modern.IE le permite descargar imágenes de VM con varias versiones de IE instaladas https://www.modern.ie/en-us/virtualization-tools#downloads –

0

Sin embargo, el último IE es compatible con el "modo de navegador" - simplemente presione F12 y elija el modo de navegación. AFAIK funciona bastante bien, al menos en comparación con IE8 e IE7. Tengo curiosidad si se puede acceder mediante javascript y se cambia automáticamente en Selenium?

+0

La respuesta simple es: No, no puede simular F12 con Selenio. El "modo de navegador" no es bastante confiable. Ver http://stackoverflow.com/a/11418046/1080590 – Miro

10

Sí, puedes. DesiredCapabilities tienen un método público que puede utilizar:

this.SetCapability(CapabilityType.BrowserName, "internet explorer"); 
this.SetCapability(CapabilityType.Version, "8"); 
this.SetCapability(CapabilityType.Platform, "WINDOWS"); 

He escrito los métodos de extensión para que sea más fácil crear una instancia de cualquier versión de la presente convocatoria:

DesiredCapabilities internetExplorer8 = 
          DesiredCapabilities.InternetExplorer().SetVersion("8"); 
IWebDriver webDriver = new RemoteWebDriver(seleniumHubUrl, internetExplorer8); 

Esto realmente tiene sentido si se utiliza RemoteWebDriver y tener un Selenium2 Grid/Hub configurado con múltiples nodos, por ejemplo múltiples máquinas virtuales, cada una de las cuales tiene una versión diferente de Internet Explorer y cada una es un nodo conectado al concentrador.

y la extensión:

public static class DesiredCapabilitiesExtension 
{ 
    public static DesiredCapabilities SetBrowserName(this DesiredCapabilities desiredCapabilities, string browserName) 
    { 
     // make sure the browser name is lowercase 
     desiredCapabilities.SetCapability(CapabilityType.BrowserName, browserName.ToLowerInvariant()); 
     return desiredCapabilities; 
    } 

    public static DesiredCapabilities SetVersion(this DesiredCapabilities desiredCapabilities, string version) 
    { 
     desiredCapabilities.SetCapability(CapabilityType.Version, version); 
     return desiredCapabilities; 
    } 

    public static DesiredCapabilities SetPlatform(this DesiredCapabilities desiredCapabilities, string platform) 
    { 
     // make sure the platform is case sensitive, uppercase to make it work 
     desiredCapabilities.SetCapability(CapabilityType.Platform, platform.ToUpperInvariant()); 
     return desiredCapabilities; 
    } 
} 
+1

esto no parece funcionar. Cuando intenté configurar la versión, la cuadrícula no puede encontrar ninguna versión de IE. Aunque está reenviando la sesión con el número de versión pero no puede ubicar el navegador con la versión correcta y arroja una excepción que no puede encontrar un navegador con estas capacidades. –

1

para crear instancias diferentes versiones, se puede establecer utilizando la versión capability.setVersion al número de versión requerida. Al mismo tiempo, mientras que a partir del nodo, es necesario añadir los siguientes parámetros en la línea de comandos:

-Browser "browserName = explorador de Internet, MaxInstances = 5, la plataforma = Windows, versión = 8"

Para admitir versiones múltiples en el mismo nodo, puede usar "-browser" varias veces.

+0

Es esencial configurar el indicador del navegador en el inicio del nodo; de lo contrario, la cuadrícula no encontrará la versión deseada. ¡Gracias! – Samuel

Cuestiones relacionadas