Перейти к содержимому

Школа для начинающих тестировщиков
онлайн, начало 28 августа
Тестирование юзабилити (usability)
онлайн, начало 23 августа
Автоматизация функционального тестирования
онлайн, начало 25 августа
Организация автоматизированного тестирования
онлайн, начало 25 августа
Фотография

Selenium. Отслежить изменение свойства "DISPLAY".


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 4

#1 HVV83

HVV83

    Новый участник

  • Members
  • Pip
  • 6 сообщений
  • ФИО:ФИО

Отправлено 11 Август 2017 - 08:44

Доброго времени, в UI который я тестирую, практически после нажатия на каждый элемент появляется блок <div> типа "Loading data...", и часто так происходит, что из-за него я не могу нажать нужный мне элемент.

Хочу создать класс-хелпер, в котором будет статический метод, который будет дожидаться изменения статуса "DISPLAY" в этом блоке на "none", и его (этот метод) буду вызывать перед нажатием каждого элемента.

Подскажите, правильным ли будет такой подход, и как на Java реализовать данную проверку.


  • 0

#2 HVV83

HVV83

    Новый участник

  • Members
  • Pip
  • 6 сообщений
  • ФИО:ФИО

Отправлено 11 Август 2017 - 09:18

Метод написал так:

public class UtilClass {

    public static boolean waitForHideLoadingSatus (WebDriver driver) throws InterruptedException {

        int count = 0;
        boolean isElementDisplayed;

        do {
            isElementDisplayed = driver.findElement(By.id("outputPanelStatus")).isDisplayed();
            Thread.sleep(100);
            count++;
        }
        while(!isElementDisplayed && (count < 100));

        return count < 100;
    }
}

  • 0

#3 user12

user12

    Специалист

  • Members
  • PipPipPipPipPip
  • 681 сообщений
  • ФИО:Виктор
  • Город:Минск


Отправлено 11 Август 2017 - 09:53

Нет  конечно.

У тебя стандартная ситуация, ты кликаешь на что-то - появляется лоадер("крутелка"). Тебе надо дождаться пока крутелка исчезнет, чтобы ты мог вводить данные.

К сожелению elementToBeClickable не подходит, т.к.  клик происходит если элемент visible and enabled.

 

Поэтому используют простейнький:

WebDriverWait wait = new WebDriverWait(driver, 5000);
        wait.until(ExpectedConditions.invisibilityOfElementLocated(By(твой локатор)

  • 0

#4 HVV83

HVV83

    Новый участник

  • Members
  • Pip
  • 6 сообщений
  • ФИО:ФИО

Отправлено 11 Август 2017 - 10:22

 

Нет  конечно.

У тебя стандартная ситуация, ты кликаешь на что-то - появляется лоадер("крутелка"). Тебе надо дождаться пока крутелка исчезнет, чтобы ты мог вводить данные.

К сожелению elementToBeClickable не подходит, т.к.  клик происходит если элемент visible and enabled.

 

Поэтому используют простейнький:

WebDriverWait wait = new WebDriverWait(driver, 5000);
        wait.until(ExpectedConditions.invisibilityOfElementLocated(By(твой локатор)

Т.е. этим методом проверять, отсутствует ли "крутелка" на странице, а затем продолжать кликать? Если да, то стоит ли его выносить в класс-хелпер и оттуда вызывать?


  • 0

#5 user12

user12

    Специалист

  • Members
  • PipPipPipPipPip
  • 681 сообщений
  • ФИО:Виктор
  • Город:Минск


Отправлено 11 Август 2017 - 11:18

Т.е. этим методом проверять, отсутствует ли "крутелка" на странице, а затем продолжать кликать?

 

да. Более точно ждать, пока крутелка не пропадет

то стоит ли его выносить в класс-хелпер и оттуда вызывать?

 

Да. Иногда делают просто метод, который ждет, пока пропадет крутелка, иногда создают отдельный метод типо clickAndLoader - туда передают локатор на какой кликнуть, тут очень много вариантов и каждый делает так, как ему удобней.


  • 1


Программирование на С# для тестировщиков
онлайн, начало 1 сентября
Эффективное использование TestNG и JUnit
онлайн, начало 1 сентября
Selenium WebDriver: полное руководство
онлайн, начало 11 августа
Программирование на Java для тестировщиков
онлайн, начало 11 августа



Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Яндекс.Метрика
Реклама на портале