2012-01-13 32 views
19

Estoy usando el código de ejemplo del sitio SeleniumHq, pero en el modo de depuración el rendimiento es horrible.¿Por qué Selenium InternetExplorerDriver Webdriver es muy lento en el modo de depuración (visual studio 2010 e IE9)

En modo de lanzamiento, toda la prueba tarda unos 6 segundos (incluido el inicio y cierre de IE) En el modo de depuración, ¿tarda 65 segundos?

código de la muestra es:

[Test] 
    public void testBrowser() 
    { 
     // Do something here 
     IWebDriver driver = new InternetExplorerDriver(); 
     //Notice navigation is slightly different than the Java version 
     //This is because 'get' is a keyword in C# 
     driver.Navigate().GoToUrl("http://www.google.com"); 
     IWebElement query = driver.FindElement(By.Name("q")); 
     query.SendKeys("Cheese"); 
     System.Console.WriteLine("Page title is: " + driver.Title); 
     // TODO add wait 
     driver.Quit(); 

    } 

que he probado en IE8 y tener el mismo rendimiento. Firefox está bien, pero mis clientes usan IE, así que estoy atascado con las pruebas en su contra. Además, no tengo los mismos problemas si uso Selenium RC.

NB - Estoy usando .Net 4 y la última versión (2.16) de la webDriver.dll (que se ejecuta en un Windows de 64 bits 7 cuadro)

+0

Parece estar relacionado con su funcionamiento en modo x64? Cuando lo obligo a ejecutar en modo de depuración x86, ¿el rendimiento está bien? –

+2

La misma pregunta pero más detalles del equipo de Selenium en: http://groups.google.com/group/selenium-users/browse_thread/thread/4543181e60251841/65eaeab241c7ff8a?lnk=raot&pli=1 –

+0

Estoy teniendo el mismo problema con Versiones de 32 bits y 64 bits de InternetExplorerDriver. Y noté que el proceso iexplorer.exe obtiene aproximadamente del 30% al 60% de mi CPU mientras se están ejecutando las pruebas, con una larga pausa entre algunas operaciones. – Luciano

Respuesta

12

cheque 'prefieren 32 bits' no está marcada en su construcción propiedades. Si es así y está usando el controlador IE de 64 bits, funcionará como un caracol asmático.

25

Para mí, la solución era cambiar a la versión de 32 bits de InternetExplorerDriver.exe de https://code.google.com/p/selenium/downloads/list

aparentemente llamado IEDriverServer hoy en día, pero funciona si sólo cambia el nombre a InternetExplorerDriver.exe.

+1

Esto no parece funcionar para mí un año después, Win 7 x64 con IE 9 x32, ambas versiones de IEDriverServer.exe darán como resultado un funcionamiento muy lento. – MrDoom

+1

IEDriverServer ahora aquí si buscas http://www.seleniumhq.org/download/ – Zymotik

+0

Esta solución funcionó para mí desde el selenio versión 2.52 (feb de 2016) – Chris

2

Al usar C#, NUnit, C# webdriver client e IEDriverServer, originalmente tuve el problema con la entrada lenta (por ejemplo, enviar claves a un cuadro de entrada demoraría unos 5 segundos entre las teclas o al hacer clic en un botón)

Luego, después de leer este hilo, cambié al IEDriverServer de 32 bits, y eso pareció resolver el problema.

Pero hoy estaba experimentando con los InternetExplorerOptions objeto con el fin de establecer algunas opciones en IE de acuerdo con esta documentación:

https://code.google.com/p/selenium/wiki/InternetExplorerDriver

por la documentación, he creado el valor del registro HKCU \ Software \ Microsoft \ Internet Explorer \ Main \ TabProcGrowth con un valor de 0 para usar ForceCreateProcessApi = true y BrowserCommandLineArguments = "-private".

Después de hacer esto, noté que el problema de entrada lenta estaba de vuelta. Hice varios cambios en mi código, pero después de deshacerlos todos, el problema persistía. Sin embargo, cuando eliminé la clave de registro mencionada, la entrada volvió a la velocidad máxima (sin demora).

Cuestiones relacionadas