¿Cómo puedo hacer que un clic con selenio() funcione igual que con un clic del mouse?Prueba de selenio de GWT 2.0
Recientemente actualicé GWT de 1.7.1 a 2.0. Algunas pruebas de selenio (SeleniumRC v1.0.1, IE7) ahora están fallando. Parece que el método Selenium.click() no está seleccionando un GWT TreeItem. Un clic manual hará que TreeItem se vuelva azul (es decir, se vea seleccionado y tenga el atributo de clase "gwt-TreeItem-selected" en el DOM), pero la prueba de selenio no.
Estoy convencido de que el selenio está realmente encontrando el elemento correcto, simplemente no haciendo clic en él. Si cambia el parámetro de cadena en el método de clic, puede verificar que el selenio arroje una excepción cuando no se encuentra el elemento.
El código de ejemplo siguiente utiliza el sitio web de GWT Showcase. Intenta hacer clic en la palabra "Beethoven". Si hace clic en esa palabra con el mouse, verá que TreeItem se vuelve azul. Sin embargo, cuando ejecuta la prueba de selenio, no lo hará.
package test;
import org.junit.Before;
import org.junit.Test;
import com.thoughtworks.selenium.DefaultSelenium;
import com.thoughtworks.selenium.Selenium;
public class TestTreeClick {
static Selenium selenium = null;
@Before
public void setUp() throws Exception {
if (selenium == null) {
selenium = new DefaultSelenium("localhost", 4444, "*iexplore",
"http://gwt.google.com/samples/Showcase/Showcase.html#CwTree");
selenium.start();
}
}
@Test
public void testingClicking() {
selenium.open("http://gwt.google.com/samples/Showcase/Showcase.html#CwTree");
selenium.click("gwt-debug-cwTree-staticTree-root-child0-content");
}
}
que han intentado otros métodos (Selenium.clickAt(), Selenium.fireEvent(), Selenium.mouseOver()/Abajo()/Arriba()) - pero ninguno reproducir el comportamiento manual.
La función de selenio que realmente dispara los eventos de clic es triggerMouseEvent en src/main/resources/core/scripts/selenio-browserbot.js selenio-core /. La mayor parte del código crea un objeto de evento y luego llama a element.dispatchEvent (event). – John