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

java
webdriver
Теги: #<Tag:0x00007fedb8e801e0> #<Tag:0x00007fedb8e80078>

(Levotsky Vadim) #1

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


(Bolatbek) #2

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


(Levotsky Vadim) #3

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


(Bolatbek) #4

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


(Levotsky Vadim) #5


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


(Bolatbek) #6

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


(Bolatbek) #7

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

{css: "#sel_lang"}

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

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

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

$('.ui-dialog').remove()

(Levotsky Vadim) #8

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

    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");
    }

(Bolatbek) #9

Ну типа того


(Oleksii Ihnatiuk) #10

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


(Furtikov Kirill) #11

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

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

(Bolatbek) #12

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


(Levotsky Vadim) #13

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