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

Как закрыть popup window в контретном сайте

Теги: #<Tag:0x00007f74871ac7c0> #<Tag:0x00007f74871ac5b8>

Добрый день всем.
Нужна помощь квалифицированных и опытных автоматизаторов.
Тестирую сайт https://www.delta.com/ . При загрузке страницы всплывает окно с выбором языка (причем всплывает не всегда, наверное из-за того что я часто захожу на сайт иногда не появляется оно).
Так вот, не могу понять как с ним работать - как закрыть его или выбрать язык?
Ну и как прикрутить проверку на то что popup появился?
Вебдрайвер за этим окном работает со страницей ( выбираю аэропорт, даты и т.п.)
Хелп плиз )

Проверяете, что появилось форма выбора языка.
Если нет формы - идете дальше.
Если есть форма - выбираете нужный язык.
В чем конкретно проблема?

не могу переключится на это окно и закрыть его или выбрать язык

Как выглядит форма? Можно скрин?


в вопросе есть url сайта, можно посмотреть самому

Спросил, потому что у меня ни разу не появилось это окно.

Не понятно, а как вы пытаетесь поймать это окно?
Это обычная div`ка.
Смотрите, например, наличие элемента - это заголовок с текстом “PLEASE SELECT YOUR COUNTRY & LANGUAGE”

{css: "#sel_lang"}

Если этот элемент видим, то кликаете на крестик в углу.
Если нужно выбрать язык, кликаете на язык:

{css: "span > #en-us"} // пример для английского языка

Если не очень хочется все это делать, можно убить div`ку простым execute_script - что-то вроде:

$('.ui-dialog').remove()
1 Симпатия

Спасибо. Дошло до меня )
Вот такой код получился у меня

    if (this.isElementPresent(By.xpath("//h1[@id='sel_lang']"))) {
        WebDriverWait wait = new WebDriverWait(driver, 20);
        wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//button[span[text()='Close']]"))).click();
        System.out.println("Successfully closed the start Popup");
    }

Ну типа того

Локаторы у вас можно оптимизировать, взгляните и на это :slight_smile:

1 Симпатия

А если выбрать язык там никакая кука не проставляется? Можно обходить этот попап:

  1. Зайти на страницу (чтоб стандартный набор кук установился)
  2. Принудительно через drive.manage.cookies проставить куку, которая за язык отвечает
  3. refresh страницы
  4. ???
  5. profit

Круто )) - свой ответ пометил правильным )))

1 Симпатия

не хочу никого обидеть, просто пометил правильный код. А за ваши совет СПАСИБО большое) - поставил лайк )