Diferencia entre revisiones de «Selenium»
Línea 84: | Línea 84: | ||
Este comando es útil después de cada comando clickAndWait para confirmar un texto debe estar presente en la página. | Este comando es útil después de cada comando clickAndWait para confirmar un texto debe estar presente en la página. | ||
+ | |||
+ | ==Sobre Popups== | ||
+ | |||
+ | En Selenium, se trabaja con una ventana a la vez. Para trabajar con diferentes ventanas (por ejemplo, un popup) se necesita primero elegir la ventana en cuestión. Y no solo basta con esto, tambien dicha ventana tiene que ser identificada. La forma mas facil de realizar esto es capturar el id de la nueva ventana con Selenium IDE. | ||
+ | Si la ventana se abre con un target="_blank" no se podrá utilizar Selenium para acceder a dicha ventana. | ||
+ | |||
==Ver también== | ==Ver también== | ||
Línea 90: | Línea 96: | ||
*[http://www.pghcodingdojo.org/index.php/Selenium_RC_Tutorial Selenium RC Tutorial] | *[http://www.pghcodingdojo.org/index.php/Selenium_RC_Tutorial Selenium RC Tutorial] | ||
*[http://www.dosideas.com/java/743-test-secuencial-con-selenium-y-junit.html Test Secuancial con Selenium y JUnit] | *[http://www.dosideas.com/java/743-test-secuencial-con-selenium-y-junit.html Test Secuancial con Selenium y JUnit] | ||
+ | *[http://wiki.openqa.org/display/SEL/Selenium+Core+FAQ#SeleniumCoreFAQ-HowdoIworkwithapopupwindow%3F Popup con Selenium] | ||
[[Category:ATDD]] | [[Category:ATDD]] |
Revisión del 20:05 2 nov 2009
Selenium es una herramienta de Software Libre para pruebas de aplicaciones Web. Las pruebas de Selenium se ejecutan directamente en un navegador y facilitan las pruebas de compatibilidad en navegadores, también como pruebas funcionales de aceptación de aplicaciones Web.
La herramienta Selenium posee un ambiente de desarrollo llamado Selenium IDE, este facilita el registro de pruebas de aceptación y su depuración.
Contenido
Integracion con JUnit 4.x
Para poder armar el test es necesario incluir los siguientes jars.
- selenium-java-client-driver-tests.jar
- selenium-java-client-driver.jar
- selenium-server-tests.jar
- selenium-server.jar
Se pueden descargar de acá: Librerías
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.server.SeleniumServer;
import com.thoughtworks.selenium.DefaultSelenium; import com.thoughtworks.selenium.SeleneseTestCase;
public class GoogleWebTest extends SeleneseTestCase {
private DefaultSelenium selenium; private SeleniumServer seleniumServer;
@Override @Before public void setUp(String browser) throws Exception { // Se instancia el server de selenium por default toma el puerto 4444 seleniumServer = new SeleniumServer(); seleniumServer.start();
// Se configura el acceso a la pagina por medio del server de selenium // DefaultSelenium("SELENIUM_HOST", PUERTO, "BROWSER", URL_DE_LA_APLICACION); // En este ejemplo, se utiliza Internet Explorer: "*iehta" selenium = new DefaultSelenium("localhost", 4444, "*iehta", "http://www.google.com"); selenium.start(); }
/** Al finalizar los tests, detener el server de Selenium */ @Override public void tearDown() throws Exception { // Se para la conexión con la pagina selenium.stop();
// Se para la instancia del server de selenium seleniumServer.stop(); }
/** Testeamos una búsqueda en Google * Accedemos a Google, realizamos una búsqueda y comprobamos que venga el resultado esperado */ @Test public void testGoogle() throws Exception { selenium.open("http://www.google.com/webhp"); assertEquals("Google", selenium.getTitle()); selenium.type("q", "Selenium OpenQA"); assertEquals("Selenium OpenQA", selenium.getValue("q")); selenium.click("btnG"); selenium.waitForPageToLoad("30000"); assertEquals("Selenium OpenQA - Google Search", selenium.getTitle()); }
}
Sobre waitForPageToLoad
Es importante que la página esté cargada antes de hacer las verificaciones sobre el nuevo contenido. Para hacer más sólido el caso de prueba ubica un waitForPageToLoad luego de un click.
Es recomendable que al terminar un caso de prueba ubiques un waitForPageToLoad y así te aseguras que el próximo caso de prueba no falle al comenzar.
Sobre assertTextNotPresent
Este comando es útil después de cada comando clickAndWait para confirmar un texto no debe estar presente en la página.
Sobre assertTextPresent
Este comando es útil después de cada comando clickAndWait para confirmar un texto debe estar presente en la página.
Sobre Popups
En Selenium, se trabaja con una ventana a la vez. Para trabajar con diferentes ventanas (por ejemplo, un popup) se necesita primero elegir la ventana en cuestión. Y no solo basta con esto, tambien dicha ventana tiene que ser identificada. La forma mas facil de realizar esto es capturar el id de la nueva ventana con Selenium IDE. Si la ventana se abre con un target="_blank" no se podrá utilizar Selenium para acceder a dicha ventana.