t.me/atinfo_chat Telegram группа по автоматизации тестирования

Переключится с дополнительного "окна" на "алерт"

Теги: #<Tag:0x00007fd771b6a738> #<Tag:0x00007fd771b6a5f8> #<Tag:0x00007fd771b6a3f0> #<Tag:0x00007fd771b6a288>

Господа, нужна помощь, я так понимаю тема не простая, возможно кто-то сталкивался с подобным.

Кейс:

  1. В окне (.window(0)) нажать кнопку “button”;
  • Открылось окно (.window(1)).
  1. В открывшемся окне (.window(1)) нажать кнопку “Accept”;
  2. Переключиться на Алерт (alert()) и подтвердить действие
    Заметки
    Относительно поведения окна (window(1)) - после нажатия на кнопку Accept - появляется Алерт и окно не активно.

Загвоздка в 3-м Шаге - не могу переключиться ни на основное окно (switchTo().window(0);), ни на Алерт(switchTo().alert().accept();).

Когда тест доходит до переключения на “основное окно” (window(0)) или Алерта - на тесте продолжает крутиться “прилоадер”, тест не фэйлится - т. е. я верно понимаю, что селенид ждет соответствующего элемента?

У меня есть предположение, что Алерт появляется не для window(1), а для window(0), но всеровно не дает возможности понять, как переключиться на Алерт;

код теста:

@Test
public void comment(){

    open("http://test.test);
    $x("//*[@name='login']").setValue("test");
    $x("//*[@name='password']").setValue("123456");
    $x("//*[@id=\"login_form\"]/button").click();

    $x("//*[@id=\"button\"]").click();
    switchTo().window(1);
    $x("//*[@id=\"comment\"]").setValue("test comment");
    $x("//*[@id=\"popUpFrom\"]/div/input[1]").click();
    //switchTo().window(0);
    switchTo().alert().accept();
    //switchTo().window(0);
}

тесты пишу selenide + java, запускаю на chrome

Вы городите огород. Я бы просто завёл багу на то что алерт неактивен.
Это у вас такой хороший большой монитор, а у пользователя может быть маленький, и алерт просто спрячется за окном, и что тогда делать?

1 Симпатия