Как сделать так, чтобы щелчок селена () работал так же, как щелчок мышью вручную?
Я недавно обновил GWT с 1.7.1 до 2.0. Некоторые тесты на селен (SeleniumRC v1.0.1, IE7) сейчас не выполняются. Похоже, что метод Selenium.click () не выбирает GWT TreeItem. Ручной щелчок заставит TreeItem стать синим (то есть выглядеть выделенным и иметь атрибут класса «gwt-TreeItem-selected» в DOM), но тест на селен - нет.
Я убежден, что селен действительно находит нужный элемент, просто не нажимая на него. Если вы измените строковый параметр в методе click, вы можете проверить, что selenium выдает исключение, когда элемент не найден.
В приведенном ниже примере кода используется веб-сайт GWT Showcase. Он пытается нажать на слово «Бетховен». Если щелкнуть мышью по этому слову, TreeItem станет синим. Однако, когда вы запустите тест на селен, он не будет.
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");
}
}
Я пробовал некоторые другие методы (Selenium.clickAt (), Selenium.fireEvent (), Selenium.mouseOver () / Down () / Up ()) - но ни один не воспроизводит поведение вручную.