Как найти элемент всплывающего окна внутри страницы Selenium Java

Я пытаюсь проверить, открывается ли страница после нажатия кнопки, но не могу найти элемент всплывающего окна внутри страницы. Я пробовал все элементы во всплывающем окне, но это то же самое.

URL, который я пробовал: https://www.boyner.com.tr/limon-t-shirt-911887

Я пытаюсь проверить, открывается ли страница после нажатия кнопки «Beden Sihirbazı».

Это мои коды:

public final By sizePage = By.xpath("//*[@class=\"text-h5 non-selectable text-center\"]");

//Check the is page opened
    WebElement sizeSection = driver.findElement(sizePage);
    boolean isOpened = sizeSection.isDisplayed();
    boolean desiredBoolean = true;
    Assert.assertEquals(isOpened, desiredBoolean);

Ошибка, которую я получил:

Пожалуйста, не размещайте изображения текста. Скопируйте текст в свой вопрос.

Andreas detests censorship 01.04.2023 02:16
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
79
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Нажатие кнопки и ожидание появления диалогового окна состоит из нескольких частей.

Шаги:

  1. Кнопка находится внутри теневого корня, поэтому мы должны захватить ее, а затем искать внутри нее.
  2. Всплывающее диалоговое окно находится внутри IFRAME, поэтому нам нужно переключиться на IFRAME, чтобы увидеть диалоговое окно.
  3. Затем нам, наконец, нужно дождаться, пока диалоговое окно станет видимым.

Рабочий код ниже.

driver = new ChromeDriver();
driver.manage().window().maximize();
driver.get("https://www.boyner.com.tr/limon-t-shirt-911887");
SearchContext shadowRoot = driver.findElement(By.cssSelector("usizy-adviser")).getShadowRoot();
shadowRoot.findElement(By.id("size-text")).click();
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By.cssSelector("div.usizy_spinner_container + iframe")));
wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("div.q-dialog")));
// if we get here, the dialog is visible

driver.quit();

Другие вопросы по теме