Come faccio a fare clic su un selenio() come un clic del mouse manuale?Test al selenio di GWT 2.0
Ho recentemente aggiornato GWT da 1.7.1 a 2.0. Alcuni test sul selenio (SeleniumRC v1.0.1, IE7) stanno fallendo. Sembra che il metodo Selenium.click() non stia selezionando GWT TreeItem. Un clic manuale farà diventare TreeItem blu (ad esempio, l'aspetto è selezionato e l'attributo di classe "gwt-TreeItem-selected" nel DOM), ma il test del selenio no.
Sono convinto che il selenio stia effettivamente trovando l'elemento giusto, semplicemente non facendo clic su di esso. Se si modifica il parametro stringa nel metodo click, è possibile verificare che il selenio generi un'eccezione quando l'elemento non viene trovato.
Il seguente codice di esempio utilizza il sito Web di GWT Showcase. Cerca di cliccare sulla parola "Beethoven". Se fai clic su quella parola con il mouse, vedrai che TreeItem diventa blu. Tuttavia quando si esegue il test del selenio, non lo farà.
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");
}
}
ho provato alcuni altri metodi (Selenium.clickAt(), Selenium.fireEvent(), Selenium.mouseOver()/Giù()/Su()) - ma nessuno riprodurre il comportamento manuale.
La funzione di selenio che in realtà genera gli eventi click è triggerMouseEvent di selenio-core/src/main/resources/nucleo/scripts/selenio-browserbot.js. La maggior parte del codice sta creando un oggetto evento, quindi chiama element.dispatchEvent (evento). – John