Serenity BDD тестирование для нажатия нескольких кнопок - PullRequest
0 голосов
/ 04 июля 2018

Я создал тест на спокойствие. Что он делает, это открыть Google, а затем искать online calculator. Тогда следует:

  1. Нажмите 1
  2. Нажмите +
  3. Нажмите 1
  4. Нажмите =

Мой код:

givenThat(gdguradio).wasAbleTo(openTheApplication);
when(gdguradio).attemptsTo(Search.forTheTerm("online calculator"));
when(gdguradio).attemptsTo(EnterInFormula.forEnteringinFormula());
//guradio.AddingTwoNumbers();
guradio.shouldSeeSumEquals("3");

Тогда мой EnterInFormula.forEnteringinFormula()

@Step("{0} clears all the completed items")
    public <T extends Actor> void performAs(T actor) {
        actor.attemptsTo(Click.on(SearchBox.NumberOne));
        actor.attemptsTo(Click.on(SearchBox.NumberPlus));
        actor.attemptsTo(Click.on(SearchBox.NumberTwo));
        actor.attemptsTo(Click.on(SearchBox.NumberEquals));
    }
    public static EnterInFormula forEnteringinFormula() {
        return instrumented(EnterInFormula.class);
    }

Мой поисковый ящик:

public class SearchBox {
    public static Target SEARCH_FIELD = Target.the("search field").located(By.name("q"));
    public static Target CalculatorFormula = Target.the("Calculator Formula").located(By.id("cwos"));
    public static Target NumberOne = Target.the("1").located(By.id("cwbt33"));
    public static Target NumberTwo = Target.the("2").located(By.id("cwbt34"));
    public static Target NumberPlus = Target.the("+").located(By.id("cwbt46"));
    public static Target NumberEquals = Target.the("=").located(By.id("cwbt45"));
}

Выглядит нормально до нажатия клавиш. Он нажимает только номер 2, поэтому тест не пройден.

Как правильно написать нажатие кнопок?

1 Ответ

0 голосов
/ 05 июля 2018

Код выглядит хорошо. Это похоже на обычную проблему автоматизации Selenium - Selenium говорит, что элемент не включен, поэтому для Selenium, вероятно, это не так. Возможно, вам придется подождать какое-то событие или состояние, прежде чем кнопка станет готова к нажатию.

...