дождаться анимации до завершения в Selenium - PullRequest
0 голосов
/ 15 октября 2018

У меня проблема с ожиданием анимации до завершения.До сих пор было достаточно использовать функции селена, такие как

wait.until (ExpectedConditions ....

, но теперь это невозможно. У меня есть элемент в HTML

<div content-c2="" class="nav-loader"></div>

Этот элемент имеет следующий стиль CSS:

.nav-header[content-c2] .nav-loader[content-c2] {
width: 100%;
height: 2px;
background: #EE3D42;
float: left;
clear: both;
animation: 1.5s ease-out 0.5s 1 slideInFromLeft;

Мне нужно подождать, пока загрузчик не будет завершен, и затем я смогу продолжить с другими действиями селена, такими как click, ...Я хочу избежать использования статических задержек и т. Д. Кто-нибудь может мне помочь, как настроить конкретную функцию для проверки после завершения анимации? Спасибо за подсказки ...

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

Сама анимация работает в статическое время.1,5 с и 0,5 с - это время в секундах.

Пожалуйста, отметьте эту часть CSS - animation: 1.5s ease-out 0.5s 1 slideInFromLeft;

Вам нужно будет подождать, сколько времени будет предоставлено в этом коде CSS.

0 голосов
/ 15 октября 2018

Оформить заказ (используя машинопись и транспортир)

адаптировать его к вашим потребностям

export async function waitForAnimation() {

    let loadingIcon = element(by.css('div.spinner'));
    try {
        // setting minimal timeout to search for the element
        await browser.manage().timeouts().implicitlyWait(500);

        // trigger check if there is such element on the page.
        await loadingIcon.getWebElement();

        await browser.wait(ExpectedConditions.invisibilityOf(loadingIcon), 10000, 'Loading icon is still present...');
    } catch (e) {
        // loading icon is not present so ignore the exception
    } finally {
        // Setting browser implicit timeout back to the original configuration.
        await browser.manage().timeouts().implicitlyWait(5000);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...