Ввод. Selenium Webdriver

239
18 декабря 2017, 14:02

Нужно сымитировать нажатие клавиши. Не ввод по средствам SendKeys, а именно открыть страницу и сымитировать нажатие кнопки на клавиатуре.

Есть примерно такой тест:

    webDriver.get("http://pdd.by/tasks/online/");
    webSite.taskPage().startClick();
    // И тут нужна имитация нажатия

Можно ли вообще это реализовать при помощи Selenium. Если да - то как?

Пробовал robot.keyPress(KeyEvent.VK_3);для имитации нажатия 3. Но увы и ах...

Answer 1

В Selenium Webdriver для обработки событий мыши и клавиатуры используется Advanced User Interactions API. В нем есть Actions, которые и нужны нам для генерации определенной последовательности действий.

Пример, как пользоваться ими:

  1. Импортируем Actions и Action классы:

    import org.openqa.selenium.interactions.Action;
    import org.openqa.selenium.interactions.Actions;
    
  2. Создаем объект класса Actions, с помощью которого будем генерировать действия:

    Actions builder = new Actions(driver);
    
  3. Инициализируем объект класса Action с помощью builder:

    Action keyXPressed = builder.sendKeys("x").build();
    
  4. Теперь в любом месте тестирующего кода мы можем исполнить эту последовательность действий следующим образом:

    keyXPressed.perform();
    

Что же касается Java Robot, то он не совсем подходит для данной задачи. Почему? Подробно ответ на этот вопрос дан тут.

Так что Вам нужно пользоваться классами Action и Actions.

Answer 2
webDriver.findElement(By.linkText(text)).click();

У кнопки же есть какой-то текст

READ ALSO
Задача Java Swing AWT Geomtry, rectangle, Ellipse

Задача Java Swing AWT Geomtry, rectangle, Ellipse

Прямоугольная область задана координатами x1 y1, x2 y2 концов ее диагоналиОбласть разбита на прямоугольники так, что одна сторона разбита на n, а другая...

217
Подключение к серверу с помощью Servlet и jetty

Подключение к серверу с помощью Servlet и jetty

Не получается подключиться к ServletДальше ошибка - HTTP ERROR 503 Подскажите в чем проблема?

200
Повернуть отдельный спрайт Android

Повернуть отдельный спрайт Android

Всем привет, я делаю игру в качестве опыта и у меня возникла потребность максимально оптимально произвести поворот спрайтаЯ знаю как нарисовать...

231
Отсутствие return

Отсутствие return

Почему после последней фигурной скобки есть эта ошибка:missing return statement Весь код:

188